以float
类型允许的精度计算列表平均值的最快方法是什么。我知道numpy.average
,但是与float
类型允许的位数相比,这减少了几位数。因此,我正在寻找一种快速的方法来计算大量浮点数的平均值,并给出Python 3中浮点数的平均值。
到目前为止,我具有此功能:
def average(inp_array):
return (sum(inp_array) / float(len(inp_array)))
有更快的东西吗?
答案 0 :(得分:1)
如果不需要权重来平均数据,则可以将numpy.mean
与dtype
参数一起使用。
>>> np.mean(np.random.random_sample(100), dtype=np.float128)
0.49566869596595826807
如果放置np.float64
或np.float32
,则精度会降低:
>>> np.mean(np.random.random_sample(100), dtype=np.float64)
0.4827266837646129
>>> np.mean(np.random.random_sample(100), dtype=np.float32)
0.5099036