numpy数组排序

2018-08-20  本文已影响0人  浅灰灬

numpy快速排序:np.sort    np.argsort

np.sort:在不修改原始数据的基础上返回一个排好序的数组

例:x = np.array([2 , 1 , 4 , 3 , 5])

np.sort(x)

结果:array([1, 2, 3, 4, 5])

如果希望用排好序的数组代替原始数组,可以使用x.sort()

np.argsort:返回的是原始数组排好序的索引值,可以通过高级索引创建有序的数组

i = np.argsort(x)    #i:array([1, 0, 3, 2, 4], dtype=int64)

x[i]

结果:array([1, 2, 3, 4, 5])

进行排序的同时可以通过指定axis参数的值,沿着多维的行或者列进行排序

例:rand = np.random.RandomState(42)    #指定一个种子,生成固定的随机数

x = rand.randint(0,10,(4,6))    #生成一个4行6列的矩阵

np.sort(x,axis=0)    #沿y轴进行排序,把每一列按从小到大的顺序进行排序

np.sort(x,axis=1)    #沿x轴进行排序,把每一行按从小到大的顺序进行排序

然而有的时候我们不需要对数组进行排序,只希望找到数组中第k小的值,这个时候就需要用到np.partition函数

np.partition(a,k,axis=none)    #a:数组    k:第几小的值    axis:需要分割的轴

在两个分割区中,元素是任意排序的

上一篇下一篇

猜你喜欢

热点阅读