为什么 python 对两个具有相同形状的 4x1 矩阵进行乘法运算

How come python do multiplication of two 4x1 matrices with same shape

我刚刚意识到 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]]

谁能描述一下这个?

您实际上正在执行 element-wise 矩阵乘法。要执行矩阵乘法,您应该使用 numpy 函数 np.dot().

对于二维矩阵,您还可以使用代表 np.matmul()@ 运算符。如所写 ,此运算符在处理高维矩阵 (>2D) 时可能会产生副作用