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)