python中的numpy var()和statistics variance()有什么区别?

Mic*_*dis 16 python numpy

我正在尝试一次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
Run Code Online (Sandbox Code Playgroud)

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

编辑 我想它必须这样做,后一个是样本方差而不是方差..任何人都可以解释这个区别?

Fal*_*arn 16

用这个

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

1.66666666667
Run Code Online (Sandbox Code Playgroud)

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

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

在标准统计实践中,ddof=1提供假设无限种群的方差的无偏估计.ddof=0提供正态分布变量的方差的最大似然估计.

像numpy这样的统计库使用方差n来表示它们所谓的var或variance以及标准偏差

有关更多信息,请参阅此文档:numpy doc

  • 最后一点是不正确的.numpy默认使用`var()`和`std()`的`ddof = 0`.其他库默认选择`ddof = 1`.我知道没有一个库使用一个约定方差而另一个用于标准偏差. (8认同)