为什么可以';t一个3,2矩阵乘以一个2,2矩阵加NumPy?

为什么可以';t一个3,2矩阵乘以一个2,2矩阵加NumPy?,numpy,array-broadcasting,Numpy,Array Broadcasting,使用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.multip

使用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)
回溯(最近一次呼叫最后一次):
文件“vector practice.py”,第6行,在
打印(np.乘法(x,y))
ValueError:操作数无法与形状(3,2)(2,2)一起广播
我知道我不能将这些形状相乘,但为什么不能呢?我可以在纸上把这两个矩阵相乘,为什么不用NumPy呢?我在这里遗漏了一些明显的东西吗?

np.multiply
multiply arguments element-wise.,它不是矩阵乘法。有矩阵时,需要使用
*
np.dot
进行矩阵乘法

x * y
#matrix([[21,  8],
#        [79, 28],
#        [82, 26]])

np.dot(x, y)
#matrix([[21,  8],
#        [79, 28],
#        [82, 26]])
np.multiply
multiply arguments元素,它不是矩阵乘法。有矩阵时,需要使用
*
np.dot
进行矩阵乘法

x * y
#matrix([[21,  8],
#        [79, 28],
#        [82, 26]])

np.dot(x, y)
#matrix([[21,  8],
#        [79, 28],
#        [82, 26]])