python 按二维数组的某行或某列进行排序 (numpy lexsort)
作者:互联网
转自:https://www.cnblogs.com/focus-z/p/13799524.html
1 ### python 对数组按某行或某列进行排序 2 # 链接:https://www.cnblogs.com/liyuxia713/p/7082091.html 3 import numpy as np 4 5 arr = [[ 8, 7, 6, 5], 6 [ 4, 3, 2, 1], 7 [12, 11, 10, 9]] 8 9 a = np.array(arr) 10 11 print('按最后一列 顺序 排序: \n' , a [ np.lexsort(a.T) ] ) 12 print('按最后一列 逆序 排序: \n' , a[np.lexsort(-a.T)] ) 13 print('\n') 14 print('按第一列 顺序 排序: \n' , a[np.lexsort(a[:,::-1].T)] ) 15 print('按第一列 逆序 排序: \n' , a[np.lexsort(-a[:,::-1].T)] ) 16 print('\n') 17 print('按最后一行 顺序 排序: \n' , a.T[np.lexsort(a)].T ) 18 print('按最后一行 逆序 排序: \n' , a.T[np.lexsort(-a)].T ) 19 print('\n') 20 print('按第一行 顺序 排序: \n' , a.T[np.lexsort(a[::-1,:])].T ) 21 print('按第一行 逆序 排序: \n' , a.T[np.lexsort(-a[::-1,:])].T ) 22 23 ''' 运行结果: 24 按最后一列 顺序 排序: 25 [[ 4 3 2 1] 26 [ 8 7 6 5] 27 [12 11 10 9]] 28 按最后一列 逆序 排序: 29 [[12 11 10 9] 30 [ 8 7 6 5] 31 [ 4 3 2 1]] 32 33 34 按第一列 顺序 排序: 35 [[ 4 3 2 1] 36 [ 8 7 6 5] 37 [12 11 10 9]] 38 按第一列 逆序 排序: 39 [[12 11 10 9] 40 [ 8 7 6 5] 41 [ 4 3 2 1]] 42 43 44 按最后一行 顺序 排序: 45 [[ 5 6 7 8] 46 [ 1 2 3 4] 47 [ 9 10 11 12]] 48 按最后一行 逆序 排序: 49 [[ 8 7 6 5] 50 [ 4 3 2 1] 51 [12 11 10 9]] 52 53 54 按第一行 顺序 排序: 55 [[ 5 6 7 8] 56 [ 1 2 3 4] 57 [ 9 10 11 12]] 58 按第一行 逆序 排序: 59 [[ 8 7 6 5] 60 [ 4 3 2 1] 61 [12 11 10 9]] 62 63 '''
标签:11,10,12,某列,python,lexsort,np,print,排序 来源: https://www.cnblogs.com/lyj0123/p/13807276.html