python 多维数组(array)排序

原文:https://blog.csdn.net/daoxiaxingcai46/article/details/78391169

python 多维数组(array)排序

关于多维数组如何复合排序

如数组:

>>> import numpy as np
>>> data = np.array([[2,2,5],[2,1,3],[1,2,3],[3,1,4]])
>>>> data
array([[2, 2, 5],
       [2, 1, 3],
       [1, 2, 3],
       [3, 1, 4]])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

将数组先按照第一列升序,第二列升序,第三列升序的方式排序:

>>> idex=np.lexsort([data[:,2], data[:,1], data[:,0]])
>>> sorted_data = data[idex, :]
>>> sorted_data
array([[1, 2, 3],
       [2, 1, 3],
       [2, 2, 5],
       [3, 1, 4]])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

然后将数组按照第一列降序,第二列升序,第三列升序的方式排序:

>>> idex=np.lexsort([data[:,2], data[:,1], -1*data[:,0]])
>>> sorted_data = data[idex, :]
>>> sorted_data
array([[3, 1, 4],
       [2, 1, 3],
       [2, 2, 5],
       [1, 2, 3]])

猜你喜欢

转载自blog.csdn.net/jacke121/article/details/81102938