欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

numpy 的排序

程序员文章站 2022-03-20 20:02:48
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)