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變成密集矩陣的情況下做到這一點的最好方法是什麼?