#python #matrix #numpy
#python #матрица #numpy
Вопрос:
У меня есть матрица 1X2, 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. спасибо вам всем, это был именно тот случай, так как я могу узнать, что я работаю с массивом или матрицей, потому что я работаю с фреймворком, который я только что установил, и я не знаю коды
Ответ №1:
Я предполагаю, что эти переменные есть numpy.array
, но нет numpy.matrix
. For numpy.array
*
определяется как поэлементное умножение. В этом случае используйте numpy.dot()
. Это даст вам матричное умножение.
Или просто используйте numpy.matrix
и * operator
будет матричное умножение.
Комментарии:
1. или лучше, придерживайтесь массивов и используйте np.dot. Это менее запутанно, если массивы и матрицы не смешиваются в одном коде. repr(y) или type(y) показывает тип, матрицу или массив или любой другой подкласс массива.