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