def __init__(self,size=0,dim=0,ldb=None): """ Initializes class with ListDB structure """ self._inverted=False self._original=None if ldb: self.ldb=ldb else: self.ldb = la.listdb_create(size,dim)
def ndarray_to_listdb(arr): """ Converts a numpy multidimensional array to a ListDB structure """ if issubclass(arr.dtype.type,np.integer): factor=1 else: factor= 100000000 ldb = la.listdb_create(arr.shape[0], arr.shape[1]) for i,row in enumerate(arr): for j,item in enumerate(row): if item != 0: ldb.push(int(i), int(j), int(round(item * factor))) return L1LSH(ldb=ldb)
def csr_to_listdb(csr): """ Converts a Compressed Sparse Row (CSR) matrix to a ListDB structure """ if issubclass(csr.dtype.type,np.integer): factor=1 else: factor= 100000000 ldb = la.listdb_create(csr.shape[0], csr.shape[1]) coo = csr.tocoo() for i,j,v in itertools.izip(coo.row, coo.col, coo.data): ldb.push(int(i), int(j), int(round(v * factor))) return L1LSH(ldb=ldb)