msaf/pymf/sivm.py
def _distance(self, idx):
        """ compute distances of a specific data point to all other samples"""

        if scipy.sparse.issparse(self.data):
            step = self.data.shape[1]
        else:
            step = 50000

        d = np.zeros((self.data.shape[1]))
        if idx == -1:
            # set vec to origin if idx=-1
            vec = np.zeros((self.data.shape[0], 1))
            if scipy.sparse.issparse(self.data):
                vec = scipy.sparse.csc_matrix(vec)
        else:
            vec = self.data[:, idx:idx+1]

        self._logger.info('compute distance to node ' + str(idx))

        # slice data into smaller chunks
        for idx_start in range(0, self.data.shape[1], step):
            if idx_start + step > self.data.shape[1]:
                idx_end = self.data.shape[1]
            else:
                idx_end = idx_start + step

            d[idx_start:idx_end] = self._distfunc(
                self.data[:,idx_start:idx_end], vec)
            self._logger.info('completed:' +
                str(idx_end/(self.data.shape[1]/100.0)) + "%")
        return d
def _distance(self, idx):
        if scipy.sparse.issparse(self.data):
            step = self.data.shape[1]
        else:
            step = 50000

        d = np.zeros((self.data.shape[1]))
        if idx == -1:
            # set vec to origin if idx=-1
            vec = np.zeros((self.data.shape[0], 1))
            if scipy.sparse.issparse(self.data):
                vec = scipy.sparse.csc_matrix(vec)
        else:
            vec = self.data[:, idx:idx+1]

        self._logger.info('compute distance to node ' + str(idx))

        # slice data into smaller chunks
        for idx_start in range(0, self.data.shape[1], step):
            if idx_start + step > self.data.shape[1]:
                idx_end = self.data.shape[1]
            else:
                idx_end = idx_start + step

            d[idx_start:idx_end] = self._distfunc(
                self.data[:,idx_start:idx_end], vec)
            self._logger.info('completed:' +
                str(idx_end/(self.data.shape[1]/100.0)) + "%")
        return d
def _distance ( self , idx ) : if scipy . sparse . issparse ( self . data ) : step = self . data . shape [ 1 ] else : step = 50000 d = np . zeros ( ( self . data . shape [ 1 ] ) ) if idx == - 1 : # set vec to origin if idx=-1 vec = np . zeros ( ( self . data . shape [ 0 ] , 1 ) ) if scipy . sparse . issparse ( self . data ) : vec = scipy . sparse . csc_matrix ( vec ) else : vec = self . data [ : , idx : idx + 1 ] self . _logger . info ( 'compute distance to node ' + str ( idx ) ) # slice data into smaller chunks for idx_start in range ( 0 , self . data . shape [ 1 ] , step ) : if idx_start + step > self . data . shape [ 1 ] : idx_end = self . data . shape [ 1 ] else : idx_end = idx_start + step d [ idx_start : idx_end ] = self . _distfunc ( self . data [ : , idx_start : idx_end ] , vec ) self . _logger . info ( 'completed:' + str ( idx_end / ( self . data . shape [ 1 ] / 100.0 ) ) + "%" ) return d
compute distances of a specific data point to all other samples
compute distances of a specific data point to all other samples