scipy稀疏矩阵的乘法运算符

时间:2012-12-06 09:37:50

标签: python scipy sparse-matrix

当涉及scipy稀疏矩阵时,我对乘法运算符*的行为有点困惑。看起来运算符实现了矩阵乘法,而不是像numpy数组那样的分量乘法。

要检查此代码的一些代码:

from scipy.sparse import lil_matrix
A = lil_matrix(-numpy.eye(2))
b = lil_matrix(numpy.ones((2,2)))
print (A * B).toarray()

结果:

[[-1. -1.]
 [-1. -1.]]

scipy.sparse模块的documentation并没有真正详细说明这个问题,我想知道某处是否有明确的乘法行为规范?

此外,对于具有scipy稀疏矩阵和numpy矩阵或数组的乘法运算符,是否有一些明确定义的规则?

2 个答案:

答案 0 :(得分:1)

文档确实很糟糕。如果您正在寻找分量乘法,您可以使用A.multiply(b),其中b可以是元素,向量或矩阵:

https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.sparse.csr_matrix.multiply.html

答案 1 :(得分:0)

是的,在所有情况下都是矩阵乘法。