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

2 投票
1 回答
721 浏览
提问于 2025-04-17 03:29

我有一个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,这样用 * 符号就会进行矩阵相乘。

撰写回答