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
时引发错误,请有人解释一下。
当矩阵乘法在维度上不起作用时,它会尝试将较小的数组广播(=复制)到较大的数组,这就是为什么你的第二个示例有效但第一个示例无效的原因。
我有一个二维矩阵 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
时引发错误,请有人解释一下。
当矩阵乘法在维度上不起作用时,它会尝试将较小的数组广播(=复制)到较大的数组,这就是为什么你的第二个示例有效但第一个示例无效的原因。