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
会添加到)。
我必须通过广播对 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
会添加到)。