我尝试使用Python在该稀疏矩阵中使用该行的转置来获取行的点积。我有一个叫做X2的巨大稀疏矩阵。我在名为Njc的列表中保存结果(应该是单个数字)。
X2 = X.transpose()
for row in X2:
Njc.append(dot(row,row.transpose()))
但是,当我运行程序时,结果不是单个数字。他们看着像是: (0,0)355
(0,0)295
(0,0)15
(0,0)204
(0,0)66
...
不幸的是,我的稀疏矩阵非常庞大,我无法将其变成密集矩阵(我的记忆会爆炸)。有没有办法在没有左边夫妇的情况下只获得右边的数字?
答案 0 :(得分:3)
dot
返回一个稀疏矩阵。要选择稀疏矩阵中的一个值,可以使用.todense().item()
:
Njc.append((np.dot(row, row.transpose())).todense().item())