python - 如何创建滑动窗口生成器 python 3.3

标签 python python-3.x

[0, 1, 1, 1, -1, -1, -1, -1, 1]

如何使用 5 的滑动窗口生成器添加它? 所以它会是 0 + 1 + 1 + 1 + -1,然后是 1 + 1 + 1 + -1 + -1,等等。 我正在尝试计算它们,但我无法弄清楚每次计数到 5 时如何移动我的范围。

    for num in range(len(value)+1):
        print(sum(map(int, value[num-n_day:num])))

其中 value 是列表,n_day 是 5

抱歉,我的意思是我想做: 0

0+1 = +1
0+1+1 = +2
0+1+1+1 = +3
0+1+1+1-1 = +2
1+1+1-1-1 = +1
1+1-1-1-1 = -1
1-1-1-1-1 = -3
-1-1-1-1+1 = -3

最佳答案

我只需使用切片和列表理解来完成此操作:

>>> value = [0, 1, 1, 1, -1, -1, -1, -1, 1]
>>> n_day = 5
>>> [sum(value[i:max(i-n_day, 0):-1]) for i in range(len(value))]
[0, 1, 2, 3, 2, 1, -1, -3, -3]

关于python - 如何创建滑动窗口生成器 python 3.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14947922/

相关文章:

python-3.x - 如何使用 sklearn 中经过训练的 NB 分类器来预测电子邮件的标签?

python - Python默认字符串编码

python - 线性回归与随机森林性能准确性

python - 基于多行修改python中的pandas数据框

python - 使用 PyMongo 将 Pandas 数据框插入 mongodb

python-3.x - 在 Tensorflow 中添加第二个隐藏层会破坏损失计算

python - if-else 中的条件优先级以提高效率

python - 内存核心转储 C++

python - 在 Google Colab : AttributeError: ‘PosixPath’ object has no attribute ‘ls’ 中使用 pathlib

python-3.x - python socket(TCP)程序没有结束