为什么 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) 时可能会产生副作用
我刚刚意识到 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()
的 @
运算符。如所写