【问题标题】:Fastest high precision average of a list in python3python3中列表的最快高精度平均值
【发布时间】:2019-02-16 06:05:01
【问题描述】:
以float 类型允许的精度计算列表平均值的最快方法是什么。我知道numpy.average,但与float 类型允许的位数相比,在中继中少了几位数。所以我正在寻找一种快速的方法来计算大量浮点数的平均值,并在 Python 3 中给出浮点数的平均值。
到目前为止我有这个功能:
def average(inp_array):
return (sum(inp_array) / float(len(inp_array)))
有什么更快的吗?
【问题讨论】:
标签:
arrays
python-3.x
list
average
【解决方案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