Для получения разреженной матрицы, которая выглядит как
count
object a b c d
id
him NaN 1 NaN 1
me 1 NaN NaN 1
you 1 NaN 1 NaN
Вам нужно сгенерировать 3 массива, например:
In [215]: from scipy import sparse
In [216]: data = np.array([1,1,1,1,1,1])
In [217]: row = np.array([1,2,0,2,0,1])
In [218]: col = np.array([0,0,1,2,3,3])
In [219]: M = sparse.csr_matrix((data, (row, col)), shape=(3,4))
In [220]: M
Out[220]:
<3x4 sparse matrix of type '<class 'numpy.int64'>'
with 6 stored elements in Compressed Sparse Row format>
In [221]: M.A
Out[221]:
array([[0, 1, 0, 1],
[1, 0, 0, 1],
[1, 0, 1, 0]], dtype=int64)
Такие категории, как «он», «я», «вы», должны быть сопоставлены с уникальными индексами, такими как 0,1,2. Аналогично для «a», «b», «c», «d».