How to solve: ValueError: operands could not be broadcast together with shapes (4,) (4,6)

How to solve: ValueError: operands could not be broadcast together with shapes (4,) (4,6)

我必须通过广播对 2 个数组求和。这是第一个:

a = [0 1 2 3]

这是第二个:

A = [[ 0  1  2  3  4  5]
 [ 6  7  8  9 10 11]
 [12 13 14 15 16 17]
 [18 19 20 21 22 23]]

这是我迄今为止尝试过的代码:

a = np.array(a)
A = np.array(A)
G = a + A
print(G)

但是当我运行时,它抛出这个错误:ValueError: operands could not be broadcast together with shapes (4,) (4,6)

如何解决?

执行数学运算时,数组需要具有相同的秩。也就是说,不能相加两个形状为 (4,) 和 (4, 6) 的数组,但是可以相加形状为 (4, 1) 和 (4, 6) 的数组。

您可以按如下方式添加该额外维度:

a = np.array(a)
a = np.expand_dims(a, axis=-1) # Add an extra dimension in the last axis.
A = np.array(A)
G = a + A

执行此操作并进行广播后,a 实际上会变成

[[0 0 0 0 0 0]
 [1 1 1 1 1 1]
 [2 2 2 2 2 2]
 [3 3 3 3 3 3]]

为了加法(a的实际值不会变,a还是[[0] [1] [2] [3]];上面是数组A会添加到)。