NumPy 第 7 章:统计与聚合
本系列是《NumPy 速通》的配套章节。 对一整组数据算个总账——求和、均值、最大最小、方差等等。这些操作叫聚合(aggregation),因为它们把一堆数"聚合"成一个数。本章重点:axis 参数(90% 的坑都在这)和"忽略 NaN"的两个变体。 基本聚合函数 import numpy as np arr = np.array([3, 1, 4, 1, 5, 9, 2, 6]) np.sum(arr) # 31 总和 np.mean(arr) # 3.875 平均 np.max(arr) # 9 最大 np.min(arr) # 1 最小 np.std(arr) # 标准差(sqrt(方差)) np.var(arr) # 方差 np.median(arr) # 3.5 中位数(不受极端值影响) np.prod(arr) # 连乘 np.cumsum(arr) # [3 4 8 9 14 23 25 31] 累积和 💡 均值 vs 中位数:均值对极端值(outlier)敏感,中位数稳健。工资数据被几个富豪拉高时,用中位数更能反映"普通人"水平。np.cumsum(累积和)常用于画累积分布、算前缀和。 ⚠️ 灵魂警告:NaN 会污染聚合结果 data = np.array([1.0, 2.0, np.nan, 4.0]) np.mean(data) # nan ⚠️ 一个 nan 就毁掉整个均值! 解决方案——忽略 NaN 的版本(每个聚合函数都有): np.nanmean(data) # 2.333 忽略 nan 再平均 np.nansum(data) # 7.0 np.nanmax(data) # 4.0 np.nanstd(data) # 忽略 nan 的标准差 真实数据(传感器、爬虫、问卷)几乎必然有缺失值。先 np.isnan(data).any() 检查,再用 nan 系列函数,是数据清洗的基本功。 ...