Умножение матриц в Python меняет размерность результата - PullRequest
2 голосов
/ 01 октября 2011

У меня есть матрица 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 Ответ

6 голосов
/ 01 октября 2011

Я предполагаю, что эти переменные numpy.array, но не numpy.matrix.Для numpy.array, * определяется как поэлементное умножение.В этом случае используйте numpy.dot().Это даст вам умножение матриц.

Или просто используйте numpy.matrix, и * operator будет умножением матриц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...