【问题标题】:how is Matrix Multiplication with NumpyNumpy的矩阵乘法如何
【发布时间】:2020-07-22 13:46:44
【问题描述】:

我有一个二维矩阵,例如 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 @ ThetaTheta.T * X逐元素乘法。

标签: python numpy matrix-multiplication


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-11
    • 2014-09-22
    • 2015-01-07
    • 2017-03-04
    相关资源
    最近更新 更多