如何解决:ValueError:操作数无法与形状(4,)(4,6)一起广播

2024-04-29 13:08:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须将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)

如何解决


Tags: 代码错误withnpnotbearraycould
1条回答
网友
1楼 · 发布于 2024-04-29 13:08:49

在执行数学运算时,数组需要具有相同的秩。也就是说,不能添加两个形状数组(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将被添加到其中)

相关问题 更多 >