You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Numpy将arange生成的数组转为滑动窗口式二维数组?

Numpy实现滑动窗口二维数组转换

方法一:使用sliding_window_view(推荐,Numpy 1.20+可用)

这是Numpy官方提供的专门生成滑动窗口的工具,用法简单直观,无需手动计算步长:

import numpy as np

values_points = np.arange(1,15)
window_size = 5
# 生成滑动窗口数组
result = np.lib.stride_tricks.sliding_window_view(values_points, window_size)

print(result)

运行后会直接输出你需要的二维数组,完全符合需求。

方法二:使用as_strided(适合理解滑动窗口原理)

如果你想手动控制底层的内存步长,可以用这个方法,需要先计算输出的行数和步长:

import numpy as np

values_points = np.arange(1,15)
window_size = 5
# 计算输出的行数:原数组长度 - 窗口大小 + 1
n_rows = values_points.size - window_size + 1

# 用as_strided生成滑动窗口
result = np.lib.stride_tricks.as_strided(
    values_points,
    shape=(n_rows, window_size),  # 输出的形状:(行数, 窗口大小)
    strides=(values_points.strides[0], values_points.strides[0])  # 行步长和元素步长均为原数组的单个元素步长
)

print(result)

注意:使用as_strided时要确保计算的shape和strides不会越界访问内存,否则会得到错误的随机数据。

内容的提问来源于stack exchange,提问作者tiberhockey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 21:10:35