当前位置:   article > 正文

numpy——argsort的排序操作_numpy argsort从大到小

numpy argsort从大到小

1、给定数组

input

  1. import numpy as np
  2. a = np.array([[5,4],[3,2],[1,8],[7,9]])
  3. print(a)

output

  1. [[5 4]
  2. [3 2]
  3. [1 8]
  4. [7 9]]

2、按照第1轴的第0个元素和第1个元素从小到大排序:竖排

input

  1. a.sort(axis=0)
  2. print(a)

output

  1. [[1 2]
  2. [3 4]
  3. [5 8]
  4. [7 9]]

3.第1轴内部排序,横排

input

  1. a.sort(axis=1)
  2. print(a)

output

  1. [[4 5]
  2. [2 3]
  3. [1 8]
  4. [7 9]]

4.sort没有返回值,会直接改变当前值 "只按照第1轴的第0个元素排序"

input

  1. index1 = (a[:,0]).sort()
  2. print(a)
  3. print(a[index1])

output

  1. [[1 4]
  2. [3 2]
  3. [5 8]
  4. [7 9]]
  5. [[[1 4]
  6. [3 2]
  7. [5 8]
  8. [7 9]]]

5.argsort的返回值为索引,不会改变当前值 ,按照从大到小的排序索引来排序 , "只按照第1轴的第0个元素排序,但是不会打乱第1轴内部元素"

input

  1. index1 = (-a[:,0]).argsort()
  2. print(a)
  3. print(index1)
  4. print(a[index1])

output

  1. [[5 4]
  2. [3 2]
  3. [1 8]
  4. [7 9]]
  5. [3 0 1 2]
  6. [[7 9]
  7. [5 4]
  8. [3 2]
  9. [1 8]]

6.input

  1. boxes = np.array([[12,48,26,15,0.6],[39,25,9,32,0.8],[54,21,59,10,0.5],[65,28,94,14,0.9]])
  2. print(boxes)
  3. _boxes = boxes[(-boxes[:, 4]).argsort()]
  4. print(_boxes)

output

  1. [[12. 48. 26. 15. 0.6]
  2. [39. 25. 9. 32. 0.8]
  3. [54. 21. 59. 10. 0.5]
  4. [65. 28. 94. 14. 0.9]]
  5. [[65. 28. 94. 14. 0.9]
  6. [39. 25. 9. 32. 0.8]
  7. [12. 48. 26. 15. 0.6]
  8. [54. 21. 59. 10. 0.5]]

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/638631
推荐阅读
相关标签
  

闽ICP备14008679号