【发布时间】:2018-08-31 06:50:27
【问题描述】:
我正在尝试了解this article 的特定部分。
高级索引的定义意味着
x[(1,2,3),]与x[(1,2,3)]根本不同。后者相当于x[1,2,3],它将触发基本选择,而前者将触发高级索引。请务必了解发生这种情况的原因。
我已经尝试过以下代码。
>>> import numpy as np
>>> a = np.arange(50).reshape(5,10)
>>> b = a[(2,2)]
>>> bb = a[(2,2),]
>>> a[2,2] = 50 # a[2,2] was 22 in the first place
>>> b
22 # this outcome confuses me!
我认为b = a[(2,2)] 会获得视图,所以当我更改a[2,2] 时会这样做。
bb = a[(2,2),] 会收到副本,所以即使我在 a 上做某事也不会发生任何事情。
但是当我将 a[2,2] 从 22 更改为 50 时
我期望 b = a[(2,2)] 将更改为 50 a 而bb = a[(2,2),] 将保持不变。
这一切有什么问题?我是否误解或遗漏了重要的东西?
如果是,请指正并提前感谢!
【问题讨论】:
标签: python numpy indexing view copy