Python如何编写for循环对数据集按四数滑动窗口计算指定差值
解决方案
实现逻辑
- 滑动窗口的核心是控制窗口起始索引的取值范围,确保每次取到的4个元素都不越界
- 每个窗口的计算公式为:
(a[i+2] + a[i+3]) - (a[i] + a[i+1]),其中i是窗口的起始索引
可直接运行的代码实现
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] # 遍历所有合法的窗口起始索引 for i in range(len(a) - 3): runsum = (a[i+2] + a[i+3]) - (a[i] + a[i+1]) print(runsum)
代码说明
- 用
range(len(a) - 3)控制遍历范围:你给出的数组长度是16,len(a)-3等于13,所以i会取0到12的所有整数,刚好对应13个合法窗口,不会出现索引越界的情况 - 每次循环对应滑动一次的窗口,自动完成重复计算逻辑
- 代码可自动适配所有长度≥4的数组,后续修改数据集不需要调整逻辑
内容的提问来源于stack exchange,提问作者msh
相关产品推荐
相关产品推荐

