【发布时间】:2015-02-18 10:04:54
【问题描述】:
我有一个相当大的一维 numpy 数组,我想对切片就地应用一些排序,并检索置换向量以进行其他处理。
但是,ndarray.sort()(这是一个就地操作)方法不会返回此向量,我可以使用 ndarray.argsort() 方法获取置换向量并使用它来置换切片。但是,我无法弄清楚如何就地进行。
Vslice = V[istart:istop] # This is a view of the slice
iperm = Vslice.argsort()
V[istart:istop] = Vslice[iperm] # Not an inplace operation...
附属问题:为什么在我们处理 V 的视图时,下面的代码没有修改 V?
Vslice = Vslice[iperm]
祝你好运!
弗朗索瓦
【问题讨论】:
标签: python arrays algorithm numpy