求某个值在某个数组中的分位数

利用numpy的searchsorted函数
这个函数返回值在数组中索引,这个索引除以数组的大小,就是该值在数组中的百分位
my_series.values.searchsorted(val)/len(my_series)*100
等价于
np.searchsorted(my_series.values,val)/len(my_series)*100
但需要特别注意my_series要求预先已经升序排列

以下是searchsorted这个函数的一些细节机制:
searchsorted(a,v,side='left',sorter=None)
side returned index i satisfies:
left : a[i-1] < v <= a[i]
right: a[i-1] <= v < a[i]
当 a = [1,2,2,2,2,2,2,2,2,10] ,v = 2时,函数side='left'返回index 1,函数side='right'返回index 9.

留言

熱門文章