python - scipy 稀疏矩阵的乘法运算符

标签 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.]]

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

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

最佳答案

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

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

关于python - scipy 稀疏矩阵的乘法运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13740691/

相关文章:

python - 使用给定的概率密度函数生成随机数

python - 在 Python 中使用兰伯特函数时的 NaN 值 - 在 Enthought Canopy 中

python - 将 Scipy 稀疏矩阵从 Python2.7 导出到 Matlab?

python - 如何在python中使用mongoengine在ListField上添加索引?

python - 访问不可订阅的属性

python - 如果不在列表中

python - 在python中监控线程同步

python - 您如何实现可从 Numba 调用的 C 以与 nquad 高效集成?

python - 寻找大稀疏矩阵的最小特征向量,在 SciPy 中比在 Octave 中慢 100 倍以上

python - 将字典转换为 coo_matrix