我尝试了一个Dataquest练习,发现这两个软件包的差异是不同的。

例如[1,2,3,4]

from statistics import variance
import numpy as np
print(np.var([1,2,3,4]))
print(variance([1,2,3,4]))
//1.25
//1.6666666666666667

练习的预期答案是使用np.var()计算的

编辑
我想这必须要做的是,后一个是样本方差而不是方差。有人可以解释这个差异吗?

最佳答案

用这个

print(np.var([1,2,3,4],ddof=1))

1.66666666667

Delta自由度:计算中使用的除数为N - ddof,其中N表示元素数。默认情况下,ddof为零。

平均值通常计算为x.sum() / N,其中N = len(x)。但是,如果指定了ddof,则使用除数N - ddof

在标准的统计实践中,ddof=1提供了一个假设的无限总体方差的无偏估计量。 ddof=0为正态分布变量提供方差的最大似然估计。

像numpy这样的统计资料库将方差n称为var或方差,以及标准差

有关更多信息,请引用此文档:numpy doc

关于python - python中的numpy var()和statisticsvariant()有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41204400/

10-10 08:06