Numpy 的矩阵乘法如何

how is Matrix Multiplication with Numpy

我有一个二维矩阵 X=np.ones((97,2)) 和另一个向量 Theta=np.zeros((2,1)) 当我将向量 Theta 和矩阵 X 相乘时,它会引发错误

'operands could not be broadcast together with shapes (2,1) (97,2)' 

但是当我乘以 Theta.T* x 时,它输出一个新的 (97, 2) matrix

它是如何工作的? (1,2) *(97,2) 是如何工作的,如果形状无关紧要,为什么会在 Theta * X 时引发错误,请有人解释一下。

当矩阵乘法在维度上不起作用时,它会尝试将较小的数组广播(=复制)到较大的数组,这就是为什么你的第二个示例有效但第一个示例无效的原因。

https://numpy.org/doc/stable/user/basics.broadcasting.html