如何使用Bottleneck包实现前向移动平均值的计算?
基于Bottleneck的前向移动平均实现
Bottleneck自带的move_mean方法默认仅支持后向(右对齐)移动平均,没有提供直接计算前向移动平均的专用参数,但可以通过简单的数组反转操作间接实现,全程仅依赖Bottleneck和数组基础操作,计算效率和原生方法一致:
实现代码
import bottleneck as bn import numpy as np # 示例原始数据 data = np.array([1, 2, 3, 4, 5, 6, 7, 8]) window = 4 min_count = 1 # 前向移动平均计算逻辑 reversed_data = data[::-1] reversed_backward_ma = bn.move_mean(reversed_data, window=window, min_count=min_count) forward_ma = reversed_backward_ma[::-1]
逻辑说明
把原始数组倒序后计算后向移动平均,再把结果倒序回来,得到的就是原数组的前向移动平均结果,每个位置i的取值对应原数组[i : i+window]窗口的均值,边界的不足窗口计算逻辑和你原有的后向实现保持一致,符合min_count参数的规则。
内容的提问来源于stack exchange,提问作者Akilesh
相关产品推荐
相关产品推荐

