1 import numpy as np 2 3 # 1、快速排序 4 ''' 5 1、np.sort(),不改變原先值的順序,但是在運行時占記憶體 6 2、ndarry.sort(),改變原先值的順序,不占用記憶體 7 ''' 8 # 不改變n1的順序 9 n1 = np.array([2, 5, 8... ...
1 import numpy as np 2 3 # 1、快速排序 4 ''' 5 1、np.sort(),不改變原先值的順序,但是在運行時占記憶體 6 2、ndarry.sort(),改變原先值的順序,不占用記憶體 7 ''' 8 # 不改變n1的順序 9 n1 = np.array([2, 5, 8, 156, 4, 9, 3]) 10 n2 = np.sort(n1) 11 # print(n1, n2) 12 ''' 13 [ 2 5 8 4 9 3 156] [ 2 3 4 5 8 9 156] 14 ''' 15 # 改變n1的順序 16 n1.sort() 17 # print(n1) 18 ''' 19 [ 2 3 4 5 8 9 156] 20 ''' 21 # 2、部分排序 22 ''' 23 np.partition(a,k)。 24 a:需要排列的值; 25 k:為正時,我們想要得到最小的k個數,為負時,我們想要得到的最大的k個數。但是其餘部分不進行排序,但是順序有可能已經變化 26 ''' 27 n1 = np.array([1, 5, 8, 9, 42, 14, 154, 11454, 124, 1215, 3, 245, 7, 15]) 28 n3 = np.partition(n1, 4) 29 print(n3) 30 ''' 31 [ 1 3 5 7 8 14 9 15 124 1215 11454 245 42 154] 32 33 ''' 34 n4 = np.partition(n1, -2) 35 print(n4) 36 ''' 37 [ 3 1 8 9 7 14 5 15 42 124 154 245 1215 11454] 38 ''' 39 # 在排序的同時可以通過切片的方法,取出自己想要的排好序的數據,比如n5 為n1中最大的兩個數,n6為n1中最小的4個數 40 n5 = np.partition(n1,-2)[-2:] 41 print(n5) 42 n6 = np.partition(n1,4)[:4] 43 print(n6)