计算python中分布的矩(均值,方差)

时间:2015-03-15 17:47:53

标签: python numpy probability

我有两个数组。 x是独立变量,count是x发生的计数数,如直方图。我知道我可以通过定义函数来计算均值:

def mean(x,counts):
    return np.sum(x*counts) / np.sum(counts)

是否有一般功能可用于根据x和计数定义的分布计算每个时刻?我还想计算方差。

2 个答案:

答案 0 :(得分:7)

您可以使用scipy中的moment function。它计算数据的第n个中心时刻。

你也可以定义自己的函数,看起来像这样:

def nmoment(x, counts, c, n):
    return np.sum(counts*(x-c)**n) / np.sum(counts)

在该函数中,c意味着要采取时刻,n是顺序。因此,要获得方差,您可以nmoment(x, counts, np.average(x, weights=counts), 2)

答案 1 :(得分:0)

import scipy as sp
from scipy import stats
stats.moment(counts, moment = 2) #variance

stats.moment 返回第 n 个中心矩。