我之前给出的一个回答在此处引发了我的一个问题:是否可能在不重复一堆括号的情况下引用numpy数组的视图或切片?
例如,在我的答案中,我使用了s=np.argsort(u)
,然后在“虚拟”排序的u[s]
上进行了所有计算。 我遇到过这样的情况,需要该数组的布尔掩码,得到类似于u[s][mask]
的东西。 对于更大的数据,我可能会有一个掩码的掩码的掩码......直到事情开始看起来像Scooby Doo的结尾。
但是,如果我将该数组分配给变量b=a[s][mask]
并更改b
,则a
不会更改,因此我最终需要在我的计算中携带一堆括号。 我尝试过各种排列uv=u.view()[s]
,但似乎.view()
只能创建整个数组的视图。 我是否错过了其他方法?
[mask]
上。由于它创建了数组a
的任意子集,因此它总是返回一个新的数组,而不是视图。你能否避免一开始就创建掩码? - Mad Physicist