【发布时间】:2017-04-29 11:50:12
【问题描述】:
我给earlier 的回答向我提出了一个问题:是否可以在不重复一堆括号的情况下引用 numpy 数组的视图或切片?
例如,在答案中,我使用了s=np.argsort(u),然后对“虚拟”排序的u[s] 进行了所有计算。我曾经遇到过需要该数组的布尔掩码的情况,给出类似于u[s][mask] 的东西。对于更大的数据,我可能有一个 mask of a mask of a mask 。 . .直到事情开始看起来像是史酷比剧集的结尾。
但是,如果我将该数组分配给变量b=a[s][mask] 并更改b,a 不会更改,因此我最终在计算中携带了一堆括号。我已经尝试过uv=u.view()[s] 的各种安排,但似乎.view() 只能查看整个数组。我还缺少另一种方法吗?
【问题讨论】:
-
问题是
[mask]。由于它生成数组a的任意子集,因此它总是返回一个新数组,而不是视图。你能避免一开始就戴口罩吗?