numpy中矩阵乘法很奇怪(m * m等于m.dot(m)!!!)

时间:2013-08-24 13:54:05

标签: python numpy scipy

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

这是按设计的。 http://wiki.scipy.org/NumPy_for_Matlab_Users

  

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

e.g。

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