1

当试图计算一些数据的样本平均值时,根据样本数量(首先是 1 个样本,然后是 2 个,依此类推......)我遇到了这个问题:

/usr/local/lib/python3.6/dist-packages/numpy/core/fromnumeric.py:3584: RuntimeWarning: Degrees of freedom <= 0 for slice
  **kwargs)
/usr/local/lib/python3.6/dist-packages/numpy/core/_methods.py:209: RuntimeWarning: invalid value encountered in double_scalars
  ret = ret.dtype.type(ret / rcount)

在数据数组上使用 numpy 函数“np.var()”。

我唯一的功能是这个:

def estimate_var(lam, n):
    np.random.seed(7)
    data = np.random.exponential(scale=1/lam, size=n)
    new_data = [np.var(data[:index + 1], ddof=1) for index in range(len(data))]
    return new_data

(第 4 行导致问题)

4

1 回答 1

0

这不是错误,而是警告。您收到警告是因为您正在获取一个数组的方差 ( np.var),该数组只有 1 个不存在的值。

index=0您的列表理解开始时,您正在获取其中的方差data[:0+1]只是一个值。

如果您想获取数据的方差,那么只需执行np.var(data)

于 2020-03-31T01:41:22.877 回答