У меня действительно большой набор данных о покупках. Поэтому после прочтения 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
с?