Python中是否有内置或标准的库方法来计算一组数字的算术平均值(一种平均值)?


当前回答

使用scipy:

import scipy;
a=[1,2,4];
print(scipy.mean(a));

其他回答

使用statistics.mean:

import statistics
print(statistics.mean([1,2,4])) # 2.3333333333333335

它从Python 3.4开始可用。对于3.1-3.3用户,PyPI上的stats名称下提供了该模块的旧版本。只需将统计数据更改为统计数据。

而不是铸造浮动,你可以做以下

def mean(nums):
    return sum(nums, 0.0) / len(nums)

或者使用

mean = lambda nums: sum(nums, 0.0) / len(nums)

更新:2019-12-15

Python 3.8在统计模块中添加了函数fmean。它更快,总是返回浮点数。

将数据转换为浮点数并计算算术平均值。 这比mean()函数运行得快,并且它总是返回一个 自由浮动。数据可以是序列或可迭代对象。如果输入数据集为 empty则引发StatisticsError。 Fmean ([3.5, 4.0, 5.25]) 4.25 3.8新版功能。

你甚至不需要numpy或scipy…

>>> a = [1, 2, 3, 4, 5, 6]
>>> print(sum(a) / len(a))
3

NumPy有一个NumPy。这是算术平均数。用法如下:

>>> import numpy
>>> a = [1, 2, 4]
>>> numpy.mean(a)
2.3333333333333335

如果你正在使用python >= 3.8,你可以使用统计模块中引入的fmean函数,它是标准库的一部分:

>>> from statistics import fmean
>>> fmean([0, 1, 2, 3])
1.5

它比统计数据还要快。均值函数,但它事先将其数据点转换为浮点数,因此在某些特定情况下可能不太准确。

你可以在这里看到它的实现