Skip to main content
 首页 » 编程设计

python之迭代有效地计算平均值

2025年05月04日9bluestorm

我有一长串整数:

my_list = [10,13,42,23,12,45,33,59,12] 

我想计算第一个 i 的平均值数字,所有i在 0<i<n .

我基本上可以做到:

averages = [ sum(my_list[0:i]) * (1.0/i) for i in range(1,len(my_list)) ] 

这给了我正确的结果,但我认为应该有一种更快的方法,因为我可以在下面的计算中使用以前的总和。

我想应该有一个更快的解决方案 numpy ,也许?

请您参考如下方法:

如何使用 numpy.cumsum

In [13]: import numpy as np 
 
In [14]: my_list = [10,13,42,23,12,45,33,59,12] 
 
In [15]: np.cumsum(my_list) / np.arange(1, len(my_list)+1, dtype=np.float) 
Out[15]:  
array([ 10.        ,  11.5       ,  21.66666667,  22.        , 
        20.        ,  24.16666667,  25.42857143,  29.625     ,  27.66666667])