672 字
3 分钟
数据分析|统计函数

9.1 统计函数概述
下表列出了本节涉及的统计函数:
| 函数 | 功能 |
|---|---|
np.sum(x) | 求和 |
np.mean(x) | 平均值 |
np.median(x) | 中位数 |
np.std(x) | 标准差 |
np.var(x) | 方差 |
np.min(x) / np.max(x) | 最小值 / 最大值 |
np.argmin(x) / np.argmax(x) | 最小值 / 最大值的索引 |
np.percentile(x, q) | 计算第 q 百分位数 |
np.cumsum(x) | 累积和 |
np.cumprod(x) | 累积积 |
9.2 求和
np.sum() 计算数组中所有元素的总和:
import numpy as np
# 基本求和print(np.sum([1, 2, 3]))
# 对数组求和arr = np.array([15, 5, 12, 9, 7, 16, 19, 15])print(np.sum(arr))输出:
6989.3 平均值
np.mean() 计算数组元素的算术平均值:
print(np.mean([1, 2, 3]))
arr = np.array([15, 5, 12, 9, 7, 16, 19, 15])print(np.mean(arr))输出:
2.012.259.4 中位数
np.median() 计算数组元素的中位数(排序后位于中间位置的值):
print(np.median([1, 2, 4, 8]))
arr = np.array([15, 5, 12, 9, 7, 16, 19, 15])print(np.median(arr))输出:
3.013.59.5 方差与标准差
方差(np.var())衡量数据的离散程度,标准差(np.std())是方差的算术平方根。
print(np.var([1, 2, 3])) # 方差print(np.std([1, 2, 3])) # 标准差输出:
0.66666666666666660.816496580927726均值相同但方差不同的对比:
arr1 = np.array([1, 2, 1, 2, 1, 1, 1, 2])arr2 = np.array([1, 0, 3, 0, 0, 0, 4, 3])
print(np.mean(arr1)) # 平均值相同print(np.mean(arr2))print(np.var(arr1)) # 方差不同print(np.var(arr2))输出:
1.3751.3750.2343752.484375两个数组的平均值相同(1.375),但 arr2 的方差远大于 arr1,说明 arr2 的数据分布更加分散。
9.6 最大值与最小值
np.max() / np.min() 返回最值,np.argmax() / np.argmin() 返回最值的索引位置:
arr = np.array([15, 5, 12, 9, 7, 16, 19, 15])print(arr)print(np.max(arr), np.argmax(arr)) # 最大值及其索引print(np.min(arr), np.argmin(arr)) # 最小值及其索引输出:
[15 5 12 9 7 16 19 15]19 65 1- 最大值为 19,位于索引 6。
- 最小值为 5,位于索引 1。
9.7 分位数
np.percentile(x, q) 计算数组的第 q 百分位数,np.median() 本质上等价于 np.percentile(x, 50)。
np.random.seed(0)arr = np.random.randint(0, 100, 4)print(arr)
print(np.median(arr)) # 中位数(第50百分位数)print(np.percentile(arr, 25)) # 第25百分位数输出:
[44 47 64 67]55.546.25第25百分位数的计算过程:
排序后: 44 47 64 67位置 = 0.25 × 3 = 0.75结果 = (47 - 44) × 0.75 + 44 = 46.259.8 累积和与累积积
np.cumsum() 计算累积和,np.cumprod() 计算累积积:
arr = np.array([1, 2, 3])
print(np.sum(arr)) # 总和print(np.cumsum(arr)) # 累积和print(np.cumprod(arr)) # 累积积输出:
6[1 3 6][1 2 6]- 累积和:
[1, 1+2, 1+2+3]=[1, 3, 6] - 累积积:
[1, 1×2, 1×2×3]=[1, 2, 6]
9.9 本节小结
本节完成了以下内容:
- 掌握了
np.sum()、np.mean()、np.median()等集中趋势统计函数。 - 掌握了
np.var()、np.std()等离散程度统计函数。 - 掌握了
np.max()/np.min()及np.argmax()/np.argmin()最值查找。 - 掌握了
np.percentile()分位数计算及其原理。 - 掌握了
np.cumsum()和np.cumprod()累积运算。
数据分析
连载中分享文章
生成精美分享图或复制链接,与更多人分享本文。
继续阅读
换条路线
从其他文章中稳定抽取
最后更新于 ,距今已过 95 天
部分内容可能已过时
评论