Var(x)和cov(x,x)在numpy中不会给出相同的结果

时间:2011-12-14 14:43:33

标签: python numpy covariance variance

协方差的一个性质是,cov(x,x)= var(x)

然而,在numpy中我得不到相同的结果。

from numpy import var, cov

x = range(10)
y = var(x)
z = cov(x, x)[0][1]
print y, z

我在这里做错了吗?如何获得正确的结果?

2 个答案:

答案 0 :(得分:22)

你必须使用z = cov(x,bias = 1)才能用N进行归一化,因为var也是n的范数 (根据this

答案 1 :(得分:11)

cov(无)和var(0)的默认ddof不同。尝试指定ddof(或偏见):

>>> cov(x, x, ddof=0)
array([[ 8.25,  8.25],
       [ 8.25,  8.25]])
>>> var(x)
8.25