我有一个范围
np.arange(1,11) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
对于范围内的每个元素 i,我想计算从元素 i=0 到当前元素的平均值。结果会是这样的:
array([ 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. , 5.5])
# got this result via np.cumsum(np.arange(1,11,dtype=np.float32))/(np.arange(1, 11))
我想知道 numpy/pandas 中是否没有开箱即用的函数可以给我这个结果?
最佳答案
您可以使用 expanding()
(需要 Pandas 0.18.0):
ser = pd.Series(np.arange(1, 11))
ser.expanding().mean()
Out:
0 1.0
1 1.5
2 2.0
3 2.5
4 3.0
5 3.5
6 4.0
7 4.5
8 5.0
9 5.5
dtype: float64
关于python - 增加窗口的滚动均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39468228/