>>> a = np.arange(12).reshape(3,4)
>>> a[0:3:2, :][:, [0,2]] = 100 ### the first time
>>> a
array([[100, 1, 100, 3],
[ 4, 5, 6, 7],
[100, 9, 100, 11]])
>>> a[:, [0, 2]][0:3:2, :] = 0 ### second time
>>> a
array([[100, 1, 100, 3],
[ 4, 5, 6, 7],
[100, 9, 100, 11]])
我对Python中的视图和副本感到非常困惑。上面的代码显示,在第一次将数组a中给定的行和列更改为100时,原始数组a被更改了。
然而,第二次原始数组并没有改变。这是为什么呢?
a[0:3:2, [0,2]]
。 - hpaulj