如何为Python滑动窗口运算输出的每个窗口数组分配独立变量名
移动窗口结果分配独立变量名的实现方法
你提供的原始代码缺少两个依赖导入,运行前需要先补全:
import itertools as it import numpy as np
补全后得到的x_是形状为(4,3)的numpy数组,共有4个窗口结果,你可以通过以下两种方式分配独立变量名:
方案1:手动解包(推荐,逻辑清晰无副作用)
直接用Python序列解包特性赋值即可,代码如下:
# 如果需要保留numpy数组格式 a1, a2, a3, a4 = x_ # 如果需要输出为普通列表格式,加tolist()转换 # a1, a2, a3, a4 = [item.tolist() for item in x_]
运行后打印变量即可得到你需要的输出:
a1 = [1 2 3] a2 = [3 4 5] a3 = [5 6 7] a4 = [7 8 9]
方案2:动态生成变量(适合窗口数量多的场景)
如果窗口数量较多,不想手动写所有变量名,可以通过操作全局变量字典动态生成:
for idx, window in enumerate(x_, start=1): # 去掉.tolist()则变量为numpy数组格式 globals()[f"a{idx}"] = window.tolist()
执行完成后即可直接调用a1到a4的所有变量。
注意:动态生成变量的方式容易引发命名冲突,调试成本更高,非必要场景更推荐直接通过
x_[索引]的方式访问对应窗口结果。
内容的提问来源于stack exchange,提问作者sanaz
相关产品推荐
相关产品推荐

