编程语言
首页 > 编程语言> > python 按二维数组的某行或某列进行排序 (numpy lexsort)

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