Python中是否有内置或标准的库方法来计算一组数字的算术平均值(一种平均值)?
当前回答
你问题的正确答案是用统计学。但是为了好玩,这里有一个不使用len()函数的mean版本,所以它(像statistics.mean一样)可以用于不支持len()的生成器:
from functools import reduce
from operator import truediv
def ave(seq):
return truediv(*reduce(lambda a, b: (a[0] + b[1], b[0]),
enumerate(seq, start=1),
(0, 0)))
其他回答
我不知道标准库中的任何东西。然而,你可以使用这样的东西:
def mean(numbers):
return float(sum(numbers)) / max(len(numbers), 1)
>>> mean([1,2,3,4])
2.5
>>> mean([])
0.0
在numpy中,有numpy.mean()。
def avg(l):
"""uses floating-point division."""
return sum(l) / float(len(l))
例子:
l1 = [3,5,14,2,5,36,4,3]
l2 = [0,0,0]
print(avg(l1)) # 9.0
print(avg(l2)) # 0.0
使用scipy:
import scipy;
a=[1,2,4];
print(scipy.mean(a));
from statistics import mean
avarage=mean(your_list)
例如
from statistics import mean
my_list=[5,2,3,2]
avarage=mean(my_list)
print(avarage)
结果是
3.0
NumPy有一个NumPy。这是算术平均数。用法如下:
>>> import numpy
>>> a = [1, 2, 4]
>>> numpy.mean(a)
2.3333333333333335
推荐文章
- 如何限制Django模型中数值字段的最大值?
- 访问对象内存地址
- 为什么在Python方法中需要显式地有“self”参数?
- 如何升级Windows 10下的Python安装?
- tqdm在Jupyter笔记本重复打印新的进度条
- 如何在for循环中注释类型?
- 如何替换一个Pandas数据框架的字符串列中的文本?
- 从pandas apply()返回多个列
- 从列中的字符串中删除不需要的部分
- Python只大写第一个字母
- 使用熊猫合并时如何保持索引
- 如何排序两个列表(其中相互引用)在完全相同的方式
- Python中的哈希映射
- 子进程Popen和调用之间的区别是什么(我如何使用它们)?
- 将python 'type'对象转换为字符串