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

Python 如何解决:ValueError:操作数无法与形状(4,)(4,6)一起广播,python,arrays,numpy,array-broadcasting,Python,Arrays,Numpy,Array Broadcasting,我必须将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.数组(A) G=a+a 印刷品(G) 但是当我运行时,它抛出了这个错误:ValueError:操作数不能与形状(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.数组(A)
G=a+a
印刷品(G)
但是当我运行时,它抛出了这个错误:
ValueError:操作数不能与形状(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

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