【问题标题】:Multiplication operator for scipy sparse matricesscipy稀疏矩阵的乘法运算符
【发布时间】:2012-11-24 07:25:32
【问题描述】:

当涉及到 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 矩阵或数组的乘法运算符,是否有一些明确定义的规则?

【问题讨论】:

  • 我也在寻找有关此的一些文档。

标签: python scipy sparse-matrix


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2017-07-21
      • 2021-03-05
      • 2015-03-27
      • 1970-01-01
      • 2013-09-06
      • 1970-01-01
      • 2017-07-02
      • 2013-05-24
      • 2014-10-11
      相关资源
      最近更新 更多