Python计算方差、标准差时 Numpy 和 Pandas 的区别

Published: by Creative Commons Licence

在数据分析的时候,发现使用 NumpyPandas 时,计算出的方差和标准差有略微的区别,通过查阅资料,发现原因并非编码错误,而是本身内置函数的区别。特此记录。

Numpy中的var函数(std函数),默认是总体方差(总体标准差),若需要得到样本方差(样本标准差),需要让参数ddof=1,如

np.var(a)  # 总体方差
np.std(a)  # 总体标准差
np.var(a, ddof=1)  # 样本方差
np.std(a, ddof=1)  # 样本标准差

【Note】1)总体方差:计算时除以样本数N;2)样本方差:计算时除以N-1。

Pandas中的var函数(std函数),默认是样本方差(样本标准差)。若要得到每一行的数学特征,需要让参数axis=1,如

# 每一列的方差、标准差
df.var()
df.std()
# 每一行的方差、标注差
df.var(axis=1)
df.std(axis=1)