美文网首页
numpy数组排序

numpy数组排序

作者: 浅灰灬 | 来源:发表于2018-08-20 14:19 被阅读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:需要分割的轴

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

    相关文章

      网友评论

          本文标题:numpy数组排序

          本文链接:https://www.haomeiwen.com/subject/owxliftx.html