绕过,python中的numpy对象不匹配错误

Ble*_*sed 4 python arrays numpy matrix mismatch

我在使用numpy在python中乘以两个大矩阵时遇到问题.

我有一个(15,7)矩阵,我想把它乘以它的转置,即AT(7,15)*A(15*7)和mathemeticaly这应该工作,但我得到一个错误:

ValueError:形状不匹配:对象无法广播到单个形状 我在Python中使用numpy.我怎么能绕过这个,有人请帮忙!

Fre*_*Foo 14

您可能已将矩阵表示为数组.您可以将它们转换为矩阵np.asmatrix,或者用于np.dot矩阵乘法:

>>> X = np.random.rand(15 * 7).reshape((15, 7))
>>> X.T * X
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: operands could not be broadcast together with shapes (7,15) (15,7)
>>> np.dot(X.T, X).shape
(7, 7)
>>> X = np.asmatrix(X)
>>> (X.T * X).shape
(7, 7)
Run Code Online (Sandbox Code Playgroud)

数组和矩阵之间的一个区别是*矩阵是矩阵乘积,而阵列则是元素乘积.