【数组操作】 创建、排序

1. 创建数组:

python 创建一维数组:

import numpy as np

count = np.zeros(5) # 创建元素全 0 的一维数组
print(count)
'''运行结果:[0. 0. 0. 0. 0.]'''

count = np.ones(5)  # 创建元素全 1 的一维数组
print(count)
'''运行结果:[1. 1. 1. 1. 1.]'''

 

python 创建二维数组:

 1 import numpy as np
 2 arr = [ [0] * 5 for i in range(2)]
 3 print(type(arr), '\n', arr)
 4 arr = np.array(arr)            # list 转 数组
 5 print(type(arr), '\n', arr)
 6 
 7 arr2 = np.zeros((2,5))
 8 print(type(arr2), '\n', arr2)
 9 arr2 = arr2.tolist()           # 数组 转 list
10 print(type(arr2), '\n', arr2)
11 
12 ''' 运行结果:
13 <class 'list'> 
14  [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
15 <class 'numpy.ndarray'> 
16  [[0 0 0 0 0]
17  [0 0 0 0 0]]
18 <class 'numpy.ndarray'> 
19  [[0. 0. 0. 0. 0.]
20  [0. 0. 0. 0. 0.]]
21 <class 'list'> 
22  [[0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0]]
23 '''

 

2. 按二维数组的某行或某列进行排序 (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 '''

 

posted @ 2020-10-13 10:29  Bro_Li  阅读(377)  评论(0编辑  收藏  举报