One - One Code All

Blog Content

np.argsort()查找dataframe第一大第二大排序的元素topN

Python 统计学-科学计算   2014-04-06 08:52:57

先看看代码。


>>> import numpy as np

>>> x=np.array([1,4,3,-1,6,9])

>>> 

>>> x.argsort()

array([3, 0, 2, 1, 4, 5])

>>> x.argsort()[-1]

5

>>> x.argsort()[-2]

4



x.argsort()

输出定义为y=array([3,0,2,1,4,5])。


argsort()函数是将x中的元素从小到大排列,提取其对应的index(索引),然后输出到y。例如:x[3]=-1最小,所以y[0]=3,x[5]=9最大,所以y[5]=5。


当num>=0时,np.argsort()[num]就可以理解为y[num];


当num<0时,np.argsort()[num]就是把数组y的元素反向输出,例如np.argsort()[-1]即输出x中最大值对应的index,np.argsort()[-2]即输出x中第二大值对应的index,依此类推。


上一篇:Python库pandas的DataFrame进行多列排序多条件排序sort_values
下一篇:Numpy随机抽样,在不替换的情况下模拟采样random.sample()

The minute you think of giving up, think of the reason why you held on so long.