python,对一个list进行滑动窗口操作,并选取窗口内的数据

#data_list:原始的数据列。 windows_size:窗口大小。  step:窗口步进长度

def window_cut(data_list, window_size, step):
    data_len = len(data_list)
    cut_num = int((data_len - window_size) / step)
    res = []
    for i in range(cut_num+1):
        start_index = i  * step
        end_index = start_index + window_size
        cur_data = data_list[start_index:end_index]
        print(cur_data)
        res.append(cur_data)
        
    return res


#测试:
data_list = [i for i in range(19)]
print(data_list)
window_size = 5
step = 3
print(window_cut(data_list, window_size, step))

#输出
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
#[[0, 1, 2, 3, 4], [3, 4, 5, 6, 7], [6, 7, 8, 9, 10], [9, 10, 11, 12, 13], [12, 13, 14, 15, #16]]

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,可以使用numpy库来实现滑动窗口读取数据操作。首先,需要导入numpy库,并创建一个数组。然后,可以使用numpy的滑动窗口函数来滑动窗口读取数据。这个函数需要指定窗口大小和步长,以及要滑动窗口的数组。接下来,可以使用for循环遍历滑动窗口的结果,进行相应的操作。下面是一个示例代码: import numpy as np # 创建一个数组 a1 = np.arange(0, 10) print(a1) # [0 1 2 3 4 5 6 7 8 9] # 滑动窗口读取数据 def sliding_window(data, window_size, step): windows = [] for i in range(0, len(data) - window_size + 1, step): window = data[i:i+window_size] windows.append(window) return windows # 示例调用 window_size = 3 step = 1 windows = sliding_window(a1, window_size, step) print(windows) 这个示例代码展示了如何使用numpy库来实现滑动窗口读取数据操作。通过定义一个滑动窗口函数,可以传入要滑动窗口的数组、窗口大小和步长,然后使用for循环遍历滑动窗口的结果,并将结果存储在一个列表中。最后,可以打印滑动窗口的结果,以便进一步处理数据。这样,在处理大数据集时,可以更高效地读取数据进行相应的操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [numpy 滑动窗口数据](https://blog.csdn.net/weixin_44493841/article/details/122731886)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [python滑动窗口处理时序数据](https://blog.csdn.net/weixin_43536181/article/details/103703590)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值