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

如何不使用for循环实现numpy数组的非重叠均匀切片拆分

你可以直接使用numpy内置的np.split函数实现无循环的非重叠子数组拆分,代码非常简洁,执行效率也远高于Python层的for循环,完全符合你的需求。

适配你现有场景的实现代码

import numpy as np

a = np.arange(100)
idx = np.linspace(0, 100, 9).astype(np.int16)
# 直接传入切分点位(np.split不需要首尾的0和数组总长度作为参数,所以取idx[1:-1]即可)
sub_arrays = np.split(a, idx[1:-1])

# 验证输出和你原有逻辑完全一致
for arr in sub_arrays:
    print(arr)

功能说明

  • np.split生成的所有子数组都是非重叠的,默认返回原数组的视图,不会额外复制数据,处理大型numpy数组时性能优势非常明显。
  • 如果你需要的是等长拆分,不需要自定义切分点位,直接传入拆分份数即可:
    # 把数组拆成4个等长的非重叠子数组
    sub_arrays = np.split(a, 4)
    
  • 如果数组总长度无法被拆分份数整除,可改用np.array_split,它会自动调整各子数组的长度,不会抛出异常:
    # 把长度100的数组拆成3份,子数组长度分别为34、33、33
    sub_arrays = np.array_split(a, 3)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:54:03