📜  np.argsort reverse - Python (1)

📅  最后修改于: 2023-12-03 15:03:16.772000             🧑  作者: Mango

Python中的np.argsort(reverse)

在Python中,numpy库中的argsort函数是用于对数组进行排序的函数,它会返回将数组排序后得到的索引值数组。而reverse是可选参数,用于指定是否按逆序排序,默认为升序。

np.argsort的返回值是原数组的各个数据在排序后的位置索引值组成的数组,该数组的长度和原数组一样;而reverse的默认值是False,即默认情况下是升序排列,如果指定为True,就是降序排列。

语法
numpy.argsort(a, axis=-1, kind='quicksort', order=None)[::-1]

其中:

  • a:需要排序的数组

  • axis:指定沿着哪个方向进行排序,默认为-1,即沿着最后一个轴(通常是列)进行排序

  • kind:指定排序算法的种类,默认是'quicksort'

  • order:针对结构化数据类型的排序时,使用此参数指定要按哪个字段进行排序

  • [::-1]:表示对排序后的结果进行倒序排列,即降序排列

示例

假设有以下数组:

import numpy as np

a = np.array([3, 1, 4, 1, 5, 9, 2, 6, 5, 3])

现在想按升序和降序分别对其进行排序,可以这样做:

# 升序排序
print(a[np.argsort(a)])

# 降序排序
print(a[np.argsort(a)[::-1]])

输出结果如下:

[1 1 2 3 3 4 5 5 6 9]
[9 6 5 5 4 3 3 2 1 1]

因为argsort返回的是各个数据在排序后的位置索引值,所以a[np.argsort(a)]就是将a数组按升序排列的结果;而a[np.argsort(a)[::-1]]就是将a数组按降序排列的结果。