【发布时间】:2014-03-06 10:37:05
【问题描述】:
我正在使用 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 和稀疏矩阵 W 的乘积。
我在 scipy 中知道的一种方法不接受右侧的稀疏矩阵。
>>> 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 变成密集矩阵的情况下,最好的方法是什么?
【问题讨论】:
标签: python numpy matrix scipy sparse-matrix