我有一个非常庞大的购买数据集。因此,在读取CSV之后,我想将其转换为稀疏矩阵并进行计算。
# dataframe representing product_id purchased (value = 1) or not (value = 0) by user_id
df_user_product = df[['user_id','product_id']].copy()
ar1 = np.array(df_user_product.to_records(index=False))
rows, r_pos = np.unique(ar1['product_id'], return_inverse=True)
cols, c_pos = np.unique(ar1['user_id'], return_inverse=True)
#construct sparse matrix
s = sparse.coo_matrix((np.ones(r_pos.shape,int), (r_pos, c_pos)))
sparse_csr_mat = s.tocsr()
#calculations
....
但是,接下来,我需要将csr_matrix
的索引映射回product_id
的实际值。
现在我有了它们:
(0,1) 00.7
(0, 123) 1.00
(4, 0) 0.45
,我需要知道1
对应什么?哪个product_id
? 123
也对应什么,等等。
我还有一个问题,当我将coo_matrix
转换为csr_matrix
时,索引是否仍引用相同的product_id
?