统计与排序
常用函数
函数 | 作用 |
---|---|
np.argmax() | 返回最大值的下标 |
np.argsort() | 排序后的下标(从小到大) |
np.sum() | 求和 |
np.bincount() | 返回一组序列,分别记录对应下标值在原序列中出现的次数 |
np.arg系列函数
np.arg系列函数返回某种计算结果的下标,包含np.argmax,np.argsort,np.argwhere等函数。arg系函数都有一个axis参数,表示在哪一维上进行计算。举个栗子,用np.argmax函数计算3×3矩阵的最大值下标,不同的axis取值计算过程如下:
axis | 计算过程 | 结果 |
---|---|---|
不指定 | 将矩阵展平后计算 | 最大值下标(0-8之间的一个数) |
0 | 在第0维上找最大值下标 | argmax([0:3,0]),argmax([0:3,1]),argmax([0:3,2]) |
1 | 在第1维上找最大值下标 | argmax([0,0:3]),argmax([0,0:3]),argmax([0,0:3]) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# encoding=utf-8 import numpy as np a = np.argmax([2, 6, 5, 4, 3]) print(a) ''' 1 ''' a = np.reshape(range(9), [3, 3]) # 3行3列 a[1] = 8 - a[1] print(a) ''' [[0 1 2] [5 4 3] [6 7 8]] ''' # 对于每一列,计算3行中最大的 b = np.argmax(a, axis=0) print(b) ''' [2 2 2] ''' # 对于每一行,计算3列中最大的 b = np.argmax(a, axis=1) print(b) ''' [2 0 2] ''' a = np.argsort([2, 6, 5, 4, 3]) print(a) ''' [0 4 3 2 1] # 下标0是最小的,下标1是最大的 ''' |
np.bincount
对于输入的整数序列,返回一组序列,记录每个下标值出现的次数,返回序列的最大下标值为原序列的最大元素值。如果输入的系列是浮点数序列,则先进行取整处理。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# encoding=utf-8 import numpy as np a = np.bincount([1, 1, 1, 2, 3, 3]) print(a) ''' [0 3 1 2] ''' a = np.bincount([8, 9]) print(a) ''' [0 0 0 0 0 0 0 0 1 1] ''' |