四处走动,python中出现numpy对象不匹配错误



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

我有一个(15,7(矩阵,我想用它的转置乘它,即AT(7,15(*a(15*7(,从数学上讲,这应该可行,但我得到了一个错误:

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

您可能已经将矩阵表示为数组。您可以使用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)

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

最新更新