1
我正在使用Python,Numpy和Scipy软件包来执行矩阵计算。我正在尝试执行计算X.transpose() * W * X
,其中X是一个2x3稠密矩阵,W是一个稀疏对角矩阵。 (下面很简单的例子)通过稀疏矩阵乘以密集矩形矩阵
import numpy
import scipy.sparse as sp
X = numpy.array([[1, 1, 1],[2, 2, 2]])
W = sp.spdiags([1, 2], [0], 2, 2).tocsr()
我需要找到稠密矩阵X.transpose以及稀疏矩阵的,我SciPy的内知道的产品W.
的一个方法不接受稀疏矩阵在右手侧。
>>> sp.csr_matrix.dot(X.transpose(), W)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unbound method dot() must be called with csr_matrix instance as first argument (got ndarray instance instead)
有没有一种方法可以将稀疏矩阵乘以稀疏矩阵,其中的稀疏矩阵是scipy中右侧的项?如果没有,那么在不把我的W变成密集矩阵的情况下做到这一点的最好方法是什么?