gpt4 book ai didi

python - 如何正确添加两个 numpy 数组?

转载 作者:行者123 更新时间:2023-12-01 00:32:26 25 4
gpt4 key购买 nike

np_mat = np.array([[1, 2], [3, 4], [5, 6]])
np_mat + np.array([10, 10])

我很困惑 np.array([10, 10]) 和 np.array([[10, 10]]) 之间的区别。在学校里我知道只有相同维度的矩阵才能相加。当我在 np.array([10, 10]) 上使用 shape 方法时,它给了我 (2,)...这是什么意思?如何添加 np_mat 和 np.array([10, 10]) ?尺寸对我来说看起来不一样。我不明白什么?

最佳答案

看起来 numpy 在这里打破了数学规则。事实上,它将第二个矩阵 [10, 10] 与第一个 [[1, 2], [3, 4], [5, 6]] 的每个元素相加>.

这称为 https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html。 [10, 10] 的形状为 (2, ) (即数学上的 2),而 [[ 1, 2], [3, 4], [5, 6]](3, 2) (即,数学上,3 x 2 )。因此,根据一般的广播规则,您应该得到形状 (3, 2) 的结果(即,数学上,3 x 2)。

I am confused what the difference between np.array([10, 10]) and np.array([[10, 10]]) is.

第一个是一个数组。第二个是数组的数组(在内存中,它实际上是一个数组,但这与这里无关)。您可以将第一个视为列向量(大小为 2 x 1 的矩阵),将第二个视为行向量(大小为 1 x 2 的矩阵)。但是,请注意,在开始将向量解释为矩阵之前,行向量和列向量之间的区别在数学中是无关紧要的。

关于python - 如何正确添加两个 numpy 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58078918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com