def get_bucket(self, hash_name, bucket_key): """ Returns bucket content as list of tuples (vector, data). """ redis_key = "nearpy_%s_%s" % (hash_name, bucket_key) items = self.redis_object.lrange(redis_key, 0, -1) results = [] for item_str in items: val_dict = json.loads(want_string(item_str)) vector = numpy.fromiter(val_dict["vector"], dtype=numpy.float64) if "data" in val_dict: results.append((vector, val_dict["data"])) else: results.append((vector, None)) return results
def get_bucket(self, hash_name, bucket_key): """ Returns bucket content as list of tuples (vector, data). """ redis_key = 'nearpy_%s_%s' % (hash_name, bucket_key) items = self.redis_object.lrange(redis_key, 0, -1) results = [] for item_str in items: val_dict = json.loads(want_string(item_str)) # Depending on type (sparse or not) reconstruct vector if 'sparse' in val_dict: # Fill these for COO creation row = [] col = [] data = [] # For each non-zero element, append values for e in val_dict['nonzeros']: row.append(e[0]) # Row index data.append(e[1]) # Value col.append(0) # Column index (always 0) # Create numpy arrays for COO creation coo_row = numpy.array(row, dtype=numpy.int32) coo_col = numpy.array(col, dtype=numpy.int32) coo_data = numpy.array(data) # Create COO sparse vector vector = scipy.sparse.coo_matrix( (coo_data, (coo_row, coo_col)), shape=(val_dict['dim'], 1)) else: vector = numpy.fromiter(val_dict['vector'], dtype=numpy.float64) # Add data to result tuple, if present if 'data' in val_dict: results.append((vector, val_dict['data'])) else: results.append((vector, None)) return results
def get_bucket(self, hash_name, bucket_key): """ Returns bucket content as list of tuples (vector, data). """ redis_key = 'nearpy_%s_%s' % (hash_name, bucket_key) items = self.redis_object.lrange(redis_key, 0, -1) results = [] for item_str in items: val_dict = json.loads(want_string(item_str)) # Depending on type (sparse or not) reconstruct vector if 'sparse' in val_dict: # Fill these for COO creation row = [] col = [] data = [] # For each non-zero element, append values for e in val_dict['nonzeros']: row.append(e[0]) # Row index data.append(e[1]) # Value col.append(0) # Column index (always 0) # Create numpy arrays for COO creation coo_row = numpy.array(row, dtype=numpy.int32) coo_col = numpy.array(col, dtype=numpy.int32) coo_data = numpy.array(data) # Create COO sparse vector vector = scipy.sparse.coo_matrix( (coo_data,(coo_row,coo_col)), shape=(val_dict['dim'],1) ) else: vector = numpy.fromiter(val_dict['vector'], dtype=numpy.float64) # Add data to result tuple, if present if 'data' in val_dict: results.append((vector, val_dict['data'])) else: results.append((vector, None)) return results