我正在运行以下代码:
import numpy as np
a = np.array([1, 2])
b = np.array([[1, 2]])
a = a + b
print(a)
[[2 , 4 ]]
如您所见。 a
的尺寸为1,b
的尺寸为2。
从数学上讲,不可能在不同的维数组之间添加它如何在numpy下工作?这是什么意思[[2,4,]]
但是以下代码会产生错误:
import numpy as np
a = np.array([1, 2])
b = np.array([[1, 2]])
a += b
为什么不起作用?是什么导致不同的结果?
正如@ user2357112supportsMonica所写,它总是有助于检查文档。
我是从https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html引述:
当在两个数组上进行操作时,NumPy逐元素比较它们的形状。它从尾随尺寸开始,一直向前发展。当
时,两个维度兼容
它们相等,
或其中之一是1
] >>在您的情况下,两个数组共享一个具有1个元素的维(A中为1列,B中为1行)。
因此,它们以数学上没有意义的方式添加它们。
如果您对此进行了更改,并且数组的维数均为1,则将出现错误。