Python 连续计算平均值?
我的应用程序在一段时间内会出现一系列数字,例如:Python 连续计算平均值?,python,mean,calculation,continuous,Python,Mean,Calculation,Continuous,我的应用程序在一段时间内会出现一系列数字,例如:[10,8,11,9,10,8,8,11,9,8,10,11] 我知道我可以使用统计信息计算这些值的平均值。平均值(x),但这需要我存储我得到的所有值 现在的问题是:有没有一种方法可以在每次我得到一个新值时计算所有值的平均值,而不存储每个值 应该是这样的: 新值:10->平均值:10 新值:8->平均值:9 新值:11->平均值:9,6 等等 编辑:我可能只需要将所有值相加,然后计算得到的值 是的,只需保留到目前为止的总和和数字数量即可 def i
[10,8,11,9,10,8,8,11,9,8,10,11]
我知道我可以使用统计信息计算这些值的平均值。平均值(x)
,但这需要我存储我得到的所有值
现在的问题是:有没有一种方法可以在每次我得到一个新值时计算所有值的平均值,而不存储每个值
应该是这样的:
新值:10->平均值:10
新值:8->平均值:9
新值:11->平均值:9,6
等等
编辑:我可能只需要将所有值相加,然后计算得到的值 是的,只需保留到目前为止的总和和数字数量即可
def init_running_average():
int total = 0
int count = 0
def add_number(x):
nonlocal total, count
count += 1
total += x
return total/count
return add_number
avg = init_running_average()
print(avg(10)) # 10
print(avg(8)) # 9
它适用于Java,但算法是一样的:你有正确的概念,求和和和计数总是允许你计算平均值。当新值出现时,将其添加到总和中,并将计数增加1