Python统计分析首选numpy与scipy组合:numpy处理描述性统计(如mean、std、median等)并注意NaN处理,scipy.stats提供t检验、相关性、分布拟合与检验等功能,配合可视化与效应量解读更可靠。

Python做统计分析,scipy 和 numpy 是最常用、最可靠的组合:numpy 负责基础数值计算和数据组织,scipy 提供专业统计函数和检验工具。用对了,几行代码就能完成t检验、相关性、分布拟合等任务。
用 numpy 快速算描述性统计
不需要额外导入,直接对数组调用方法即可:
-
均值、标准差、中位数:
arr.mean()、arr.std(ddof=1)(样本标准差要设ddof=1)、np.median(arr) -
分位数与极值:
np.quantile(arr, [0.25, 0.5, 0.75])得四分位数;arr.min()、arr.max() -
注意缺失值:用
np.nanmean()、np.nanstd()等跳过NaN,否则结果会是nan
用 scipy.stats 做假设检验
别硬记公式,调包前先明确问题类型:
-
单样本 t 检验(判断均值是否等于某值):
from scipy.stats import ttest_1samp; ttest_1samp(data, popmean=5) -
两独立样本 t 检验(比较两组均值):
ttest_ind(group_a, group_b, equal_var=False)(推荐设equal_var=False,更稳健) -
相关性检验:
pearsonr(x, y)返回相关系数和 p 值;spearmanr(x, y)适合非线性或含异常值的数据
用 scipy 拟合与检验分布
判断数据是否服从某种分布,分两步走:
本书以培养高级网站建设与管理人才为目标,内容循序渐进,由浅入深,通过大量的实例系统全面地介绍了Linux+PHP+MySQL环境下的网络后台开发技术。本书详尽分析了近30个典型案例。包括计数器、网站流量统计、留言板、论坛系统、聊天室、投票与调查、用户管理、新闻发布系统、广告轮播、购物系统等等,力求让读者通过对案例的学习,轻松掌握PHP和MySQL的编程精要,迅速掌握网络后台开发技巧。 本书适
立即学习“Python免费学习笔记(深入)”;
-
参数估计:比如正态分布用
scipy.stats.norm.fit(data),返回(mu, sigma) -
分布检验:
kstest(data, 'norm', args=(mu, sigma))做 K-S 检验;小样本建议用shapiro(data)(Shapiro-Wilk 检验) -
可视化辅助:配合
scipy.stats.probplot(data, dist='norm', plot=plt)看 Q-Q 图,比 p 值更直观
实用小技巧
避开常见坑,提升分析效率:
-
数据预处理别跳步:用
numpy.isfinite()清洗inf和nan,再传给 scipy 函数 -
批量检验写成函数:比如对多列分别做 t 检验,用
pd.DataFrame.apply(lambda x: ttest_ind(x, baseline)) -
结果别只看 p 值:搭配效应量(如 Cohen’s d,可用
(np.mean(a)-np.mean(b))/np.sqrt((s1**2+s2**2)/2)手动算)一起解读









