【问题标题】:matrix multiplication is strange in numpy(m*m equals m.dot(m)!!!) [duplicate]numpy中的矩阵乘法很奇怪(m * m等于m.dot(m)!!!)[重复]
【发布时间】:2013-08-27 11:28:19
【问题描述】:

我在 numpy 中发现了一个奇怪的问题: 如果 m 是矩阵,则 m1*m2 的结果始终与 m1.dot(m2) 相同!!! 那么如何将两个矩阵乘以元素呢?(如matlab中的m1.*m2)

【问题讨论】:

    标签: python numpy scipy


    【解决方案1】:

    如果你将矩阵相乘(numpy.matrix 类型),NumPy 会假设你想要matrix multiplication,这对我来说似乎并不奇怪。要逐元素相乘,请使用数组 (numpy.array) 而不是矩阵,或使用 numpy.multiply()

    【讨论】:

      【解决方案2】:

      这是设计使然。 http://wiki.scipy.org/NumPy_for_Matlab_Users

      对于matrix'*' 表示矩阵乘法multiply() 函数用于逐元素乘法。

      例如

      >>> import numpy
      >>> numpy.multiply([[1, 2], [3, 4]], [[5, 6], [7, 8]])
      array([[ 5, 12],
             [21, 32]])
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-07
        • 1970-01-01
        • 2018-09-06
        • 2021-12-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多