📅  最后修改于: 2023-12-03 15:03:16.772000             🧑  作者: Mango
在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数组按降序排列的结果。