点击跳转
《Numpy入门系列目录》
1. 排序
-
直接排序
-
对数值直接进行排序
-
np.sort():最常用的排序方法
numpy.sort(a, axis, kind, order)
- kind:排序算法,默认为快速排序
- order:需要排序的字段
- sort函数可以指定axis参数,使得sort函数可以沿着指定轴对数据集进行排序
- axis=1:沿着横轴排序,每行进行排序
- axis=0:沿着纵轴排序,每列进行排序
-
-
间接排序
-
根据一个或多个键对数据集进行排序
-
使用argsort函数和lexsort函数,可以在给定一个或多个键时,得到一个由整数构成的索引数组,索引值表示数据在新的序列中的位置
-
argsort函数:从小到大排序
-
lexsort函数:一次性对满足多个键的数组执行间接排序
import numpy as np a = np.array([3, 2, 6, 4, 5]) b = np.array([50, 30, 40, 20, 10]) c = np.array([400, 300, 600, 100, 200]) d = np.lexsort((a, b, c)) # lexsort函数只接受一个参数,即(a,b,c) print(d) # 返回的是按最后一个传入数据的从小到大的排序值的下标 [3 4 1 0 2] # 多个键值排序是按照最后一个传入数据计算的 print('排序后数组为:', list(zip(a[d], b[d], c[d]))) # 排序后数组为: [(4, 20, 100), (5, 10, 200), (2, 30, 300), (3, 50, 400), (6, 40, 600)]
-
2. 去重与重复数据
-
np.unique(array)
- 找出数组中的唯一值并返回已排序的结果
-
np.tile(A, reps)
- A:指定重复的数据
- reps:指定重复的次数
import numpy as np arr = np.arange(9).reshape(3, 3) arr = np.tile(arr, 2) print(arr) ''' [[0 1 2 0 1 2] [3 4 5 3 4 5] [6 7 8 6 7 8]] '''
-
np.repeat(a, repeats, axis=None)
- a:需要重复的数组元素
- repeats:重复次数
- axis:指定轴
import numpy as np arr = np.arange(9).reshape(3, 3) arr = np.repeat(arr, 2) print(arr) ''' [0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8] '''
-
二者区别
- tile函数是对数组进行重复操作
- repeat函数是对数组中的每个元素进行重复操作
3. 常用的统计函数
- 当axis = 0时,沿着纵轴计算
- 当axis = 1时,沿着横轴计算
- 默认时,计算一个总值
- cumsum和cumprod会返回中间结果,其他直接返回最终结果