1. 程式人生 > 程式設計 >python 實現多維陣列(array)排序

python 實現多維陣列(array)排序

關於多維陣列如何複合排序

如陣列:

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

將陣列先按照第一列升序,第二列升序,第三列升序的方式排序:

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

然後將陣列按照第一列降序,第二列升序,第三列升序的方式排序:

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

補充拓展:python:對多維陣列的降序排列

在python中,遺憾的一點是沒有對多維陣列按照指定維度進行降序排列的方法。

但是,有對一維陣列的降序排列,這就足夠了!

# Author: Right.Q
# 實現多維矩陣的逆序排列
 
def descend_sort(array):
 '''對三維陣列倒序排列'''
 [height,width,channel] = array.shape
 sortArray = np.zeros([height,channel])
 for h in range(height):
  for w in range(width):
   sortArray[h,w,:] = sorted(array[h,:],reverse=True)
 
 return sortArray

形參是指定的三維陣列,如果更多維的話,自動識別維度即可。

以上這篇python 實現多維陣列(array)排序就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。