我刚刚意识到python会将两个4x1矩阵相乘,但是据我所知,不可能将两个4x1矩阵与另一个4x1矩阵相乘。我编写了以下代码对此进行了测试:
import numpy as np
first_four_by_one = np.array([[1], [2], [3], [4]])
print(first_four_by_one.shape)
second_four_by_one = np.array([[4], [5], [6], [7]])
print(second_four_by_one.shape)
result = first_four_by_one * second_four_by_one
print(result.shape)
print(result)
其结果如下:
(4, 1)
(4, 1)
(4, 1)
[[ 4]
[10]
[18]
[28]]
有人可以描述吗?
答案 0 :(得分:2)
您正在敏锐地执行逐元素矩阵乘法。要执行矩阵乘法,应使用numpy函数np.dot()
。
对于2D矩阵,您还可以使用@
表示np.matmul()
的运算符。如here所述,在使用高维矩阵(> 2D)时,该运算符可能会导致副作用