Python中的矩阵乘法更改结果维度
我有一个1行2列的矩阵,叫做 Mu_I.transpose()
,还有一个2行2列的矩阵,叫做 Covariance_I_Inverse
。
按理说,把这两个矩阵相乘后应该得到一个1行2列的矩阵,但我得到的是一个2行2列的矩阵。
这是为什么呢?我该怎么才能得到一个1行2列的矩阵呢?
>>> 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 个回答
6
我猜这些变量是 numpy.array
类型,而不是 numpy.matrix
。对于 numpy.array
,使用 *
符号时是进行逐个元素相乘。如果你想要做矩阵相乘,就应该用 numpy.dot()
这个函数。
或者你可以直接使用 numpy.matrix
,这样用 *
符号就会进行矩阵相乘。