4

我正在尝试使用 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

……

不幸的是我的稀疏矩阵太大了,我不能把它变成一个密集的矩阵(我的记忆会爆炸)。有没有办法只得到右边的数字而没有左边的夫妇?

4

1 回答 1

3

dot正在返回一个稀疏矩阵。要选择稀疏矩阵中的一个值,您可以使用.todense().item()

Njc.append((np.dot(row, row.transpose())).todense().item())
于 2012-11-18T20:31:57.183 回答