python - 增加窗口的滚动均值

标签 python pandas numpy

我有一个范围

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/

相关文章:

python - 使用 Pandas 查找列的最大值并返回相应的行值

python - 无法从其他模块追加全局 NumPy 数组

python - 如何在 Python 中平滑数据?

python - 我的 python Monty Hall 模拟有什么问题吗?

python - 允许在 Django ChoiceField 中进行动态选择

python - 使用 OR 语句过滤 Pandas 数据框

python - 计算列中大于 x 但小于 y 的元素数

python - python中的类,如何设置属性

python - django: `unique=True`是否阻止 `IntegrityError`?

python - 如何在 Python 中创建数组