np.argsort()元素从小到大排序后,提取对应的索引index,可以一行搞定排序
函数用法
numpy.argsort(a, axis=-1, kind=’quicksort’, order=None)
功能: 将矩阵a按照axis排序,并返回排序后的下标,axis=0是列,1是行
参数: a:输入矩阵, axis:需要排序的维度
返回值: 输出排序后的下标
import numpy as np x = np.array([1,4,3,-1,6,9]) x.argsort() # array([3, 0, 1, 2, 4, 5], dtype=int64)
可以发现,argsort()是将X中的元素从小到大排序后,提取对应的原来的索引index,然后输出到y
#所以取数组x的最小值的索引位置可以写成: x[x.argsort()[0]] #或者用argmin()函数 x[x.argmin()] #数组x的最大值,写成: x[x.argsort()[-1]] # -1代表从后往前反向的索引 #或者用argmax()函数,不再详述 x[x.argmax()]
输出排序后的数组
x[x.argsort()] #或者 x[np.argsort(x)] #array([-1, 1, 3, 4, 6, 9])
那么给数据排序不就很简单了,直接一行就搞定了