相关疑难解决方法(0)

NumPy:取消排序/撤消反向/降序排序

我可以对 numpy 数组进行就地反向排序(降序排序),但我还需要能够稍后对其进行取消排序(撤消)。

给出一个未排序的例子:

a = np.array([-1, -2,  1, -3,  2,  0])
Run Code Online (Sandbox Code Playgroud)

我试过:

i = a[::-1].argsort().argsort()  # BAD attempt to store original index
# i = array([3, 5, 0, 4, 1, 2])

a[::-1].sort()  # in-place reverse sort (works correctly)
# a= array([ 2,  1,  0, -1, -2, -3])

a = a[i]  # FAILS to restore original a
# a = array([-1, -3,  2, -2,  1,  0])
Run Code Online (Sandbox Code Playgroud)

上面的方法不起作用。正确的方法是什么i?假设数组非常大,因此我们不想制作任何不必要的副本。

sorting numpy matrix-indexing

2
推荐指数
1
解决办法
1931
查看次数

标签 统计

matrix-indexing ×1

numpy ×1

sorting ×1