【发布时间】:2020-07-06 15:10:35
【问题描述】:
我正在运行以下代码:
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 ] ]?
- a.shape 是 (2, )
- b.shape 是 (1 ,2)
- (a+b).shape 是 (1 ,2)
但是下面的代码会产生错误:
import numpy as np
a = np.array([1, 2])
b = np.array([[1, 2]])
a += b
为什么它不起作用?是什么导致了不同的结果?
【问题讨论】:
-
根据广播规则 a (2,) 可以扩展为 (1,2)。但在
+=中只能调整 RHS。 LHS (a) 已修复。 (1,2) 不能放在 (2,) 中。
标签: python arrays numpy matrix dimensions