我有两个数组。 x是独立变量,count是x发生的计数数,如直方图。我知道我可以通过定义函数来计算均值:
def mean(x,counts):
return np.sum(x*counts) / np.sum(counts)
是否有一般功能可用于根据x和计数定义的分布计算每个时刻?我还想计算方差。
答案 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 个中心矩。