【发布时间】:2017-12-06 08:42:38
【问题描述】:
我对python不是很熟悉。我最近阅读了《用于数据分析的 Python》一书,我对 numpy 布尔索引和设置有点困惑。 书上说:
通过布尔索引从数组中选择数据总是会创建数据的副本,即使返回的数组没有改变。
使用布尔数组设置值以常识的方式工作。
我已经尝试过如下代码:
第一:
data = np.random.randn(7, 4)
data[data < 0] = 0 # this could change the `data`
第二:
data = np.random.randn(7, 4)
copied = data[data < 0]
copied[1] = 1 # this couldn't change the `data`
这里不太明白,谁能解释一下。在我的理解中,copied 应该是指向 data[data
【问题讨论】:
-
布尔索引创建副本,而不是视图。