一、複合排序數組
直接用numpy的lexsort就能夠ide
import numpy as np data = np.array([[1,2,3,4,5], [1,2,3,6,7], [2,3,4,5,7], [3,4,5,6,7], [4,5,6,7,8]]) idex=np.lexsort([-1*data[:,2], data[:,1], data[:,0]])
#先按第一列升序,再按第二列升序,再按第三列降序
#注意先按後邊的關鍵詞排序spa
sorted_data = data[idex, :]
二、code
lexsort支持對數組按指定行或列的順序排序;是間接排序,lexsort不修改原數組,返回索引。blog