使用NumPy并尝试将矩阵相乘可能并不起作用。例如
import numpy as np
x = np.matrix('1, 2; 3, 8; 2, 9')
y = np.matrix('5, 4; 8, 2')
print(np.multiply(x, y))
可以返回
Traceback (most recent call last):
File "vector-practice.py", line 6, in <module>
print(np.multiply(x, y))
ValueError: operands could not be broadcast together with shapes (3,2) (2,2)
我知道我不能将这些形状相乘,但为什么不呢?我可以在纸上加倍这两个矩阵,为什么不在NumPy?我错过了一些明显的东西吗?
答案 0 :(得分:4)
np.multiply
按元素相乘。,它不是矩阵乘法。如果您有矩阵,则需要使用*
或np.dot
进行矩阵乘法。
x * y
#matrix([[21, 8],
# [79, 28],
# [82, 26]])
np.dot(x, y)
#matrix([[21, 8],
# [79, 28],
# [82, 26]])