我尝试了一个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/