Вы, вероятно, представляли матрицы в виде массивов.Вы можете либо преобразовать их в матрицы с 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)
Одна разница между массивами и матрицами состоит в том, что *
в матрице - это матричное произведение,в то время как в массиве это поэлементный продукт.