Python数组排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python数组排序相关的知识,希望对你有一定的参考价值。

 

1.numpy库:argsort()

 

  argsort函数返回的是数组值从小到大的索引值(升序排列)

一维:

In [1]: import numpy as np

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

In [3]: np.argsort(x)
Out[3]: array([0, 2, 1, 4, 3])

In [4]: x[np.argsort(x)]
Out[4]: array([1, 2, 3, 4, 5])

In [5]: x[np.argsort(-x)]
Out[5]: array([5, 4, 3, 2, 1])

In [6]: np.argsort(-x)
Out[6]: array([3, 4, 1, 2, 0])

降序升序排列的另一种方法:

In [7]: tmp = x[np.argsort(x)]

In [8]: tmp[::-1]
Out[8]: array([5, 4, 3, 2, 1])

二维:axis = 0 按列排序;axis = 1, 按行排序

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

In [5]: np.argsort(x, axis = 0)
Out[5]: array([[0, 1],[1, 0]])

In [6]: np.argsort(x, axis = 1)
Out[6]: array([[0, 1],[1, 0]])

  总结:np.argsort(x) 升序排列,np.argsort(-x)降序排列

 

  

 

  

  

以上是关于Python数组排序的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode810. 黑板异或游戏/455. 分发饼干/剑指Offer 53 - I. 在排序数组中查找数字 I/53 - II. 0~n-1中缺失的数字/54. 二叉搜索树的第k大节点(代码片段

python 二维数组排序

以下代码片段的时间复杂度是多少?

快速排序-递归实现

算法排序之堆排序

在第6731次释放指针后双重免费或损坏