Python中的矩阵乘法改变了结果维度

时间:2011-10-01 16:58:06

标签: python matrix numpy

我有1X2矩阵,Mu_I.transpose()和2x2矩阵Covariance_I_Inverse

乘法的结果应该是1x2矩阵,但我的输出是2x2矩阵。

为什么呢?如何获得1x2矩阵?

>>> Mu_I.transpose()
[[ 10.02010924   9.99184818]]

>>> Mu_I.transpose().shape
(1, 2)

>>> Covariance_I_Inverse
[[ 0.72006911  0.        ],
 [ 0.          0.77689697]]

>>> Covariance_I_Inverse.shape
(2, 2)

>>> (Mu_I.transpose()*Covariance_I_Inverse)
[[ 7.21517113  0.        ],
 [ 0.          7.76263658]]

>>> (Mu_I.transpose()*Covariance_I_Inverse).shape
(2, 2)

1 个答案:

答案 0 :(得分:6)

我猜这些变量是numpy.array,而不是numpy.matrix。对于numpy.array*被定义为逐元素乘法。在这种情况下,使用numpy.dot()。这将为您提供矩阵乘法。

或者只是使用numpy.matrix* operator将是矩阵乘法。