4

*当涉及 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并没有真正详细说明这一点,我想知道某处是否有明确的乘法行为规范?

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

4

2 回答 2

2

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

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

于 2017-06-23T10:00:49.570 回答
1

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

于 2012-12-06T14:50:49.833 回答