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

如何用Python将二维数组分割为带重叠的N*N小二维数组并存入字典?

带重叠的二维数组分割实现(基于NumPy)

要实现带重叠的N*N窗口分割并生成目标字典,核心是通过滑动窗口遍历合法的左上角索引,提取对应子数组即可,具体实现如下:

代码示例

import numpy as np

# 定义原数组
arr = np.array([[1,2,3,4],
                [5,6,7,8],
                [9,10,11,12]])
window_size = 2  # N*N窗口的大小

# 初始化结果字典
result_dict = {}

# 遍历所有合法的左上角行索引
for row_start in range(arr.shape[0] - window_size + 1):
    # 遍历所有合法的左上角列索引
    for col_start in range(arr.shape[1] - window_size + 1):
        # 提取窗口内的子数组,转成列表存入字典
        sub_array = arr[row_start:row_start+window_size, col_start:col_start+window_size].tolist()
        result_dict[(row_start, col_start)] = sub_array

# 输出结果
print(result_dict)

关键说明

  • 合法索引范围:行索引从0到arr.shape[0]-window_size,列索引同理,确保窗口不会超出原数组边界。
  • 重叠程度控制:示例中步长为1(即相邻窗口重叠window_size-1个元素),如果需要调整重叠度,只需修改range的步长参数。比如步长设为window_size就是无重叠分割,和你已掌握的逻辑一致。
  • 格式转换:用tolist()将NumPy数组转为普通列表,匹配示例中的输出格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 05:20:32