您好,登錄后才能下訂單哦!
關于多維數組如何復合排序
如數組:
>>> 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]])
將數組先按照第一列升序,第二列升序,第三列升序的方式排序:
>>> 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]])
然后將數組按照第一列降序,第二列升序,第三列升序的方式排序:
>>> 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]])
補充拓展:python:對多維數組的降序排列
在python中,遺憾的一點是沒有對多維數組按照指定維度進行降序排列的方法。
但是,有對一維數組的降序排列,這就足夠了!
# Author: Right.Q # 實現多維矩陣的逆序排列 def descend_sort(array): '''對三維數組倒序排列''' [height, width, channel] = array.shape sortArray = np.zeros([height, width, channel]) for h in range(height): for w in range(width): sortArray[h, w, :] = sorted(array[h, w, :], reverse=True) return sortArray
形參是指定的三維數組,如果更多維的話,自動識別維度即可。
以上這篇python 實現多維數組(array)排序就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。