如何在Python中将NumPy数组转换为每次移位1位的6元素子列表?
NumPy数组生成滑动窗口子列表
原始数组定义
import numpy as np # 初始化目标NumPy数组 arr = np.array([0.74, 0.77, 0.72, 0.65, 0.24, 0.07, 0.79, 0.88])
方法一:使用NumPy滑动窗口工具(推荐)
NumPy 1.20及以上版本提供了sliding_window_view工具,可直接生成滑动窗口,再转换为列表即可:
window_size = 6 # 生成滑动窗口并转换为列表 result = np.lib.stride_tricks.sliding_window_view(arr, window_size).tolist() print(result)
输出结果:
[[0.74, 0.77, 0.72, 0.65, 0.24, 0.07], [0.77, 0.72, 0.65, 0.24, 0.07, 0.79], [0.72, 0.65, 0.24, 0.07, 0.79, 0.88]]
方法二:手动切片实现(兼容旧版本NumPy)
如果你的NumPy版本较低,无法使用sliding_window_view,可以通过列表推导式结合切片实现:
window_size = 6 # 计算可生成的窗口数量,遍历切片并转成列表 result = [arr[i:i+window_size].tolist() for i in range(len(arr) - window_size + 1)] print(result)
同样会得到和上面一致的输出。
内容的提问来源于stack exchange,提问作者Rajan Kumar Yadav
相关产品推荐
相关产品推荐

