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

如何将numpy数组拆分为长度不等的子数组?

拆分Numpy数组为不等长子数组

直接切片法(适用于简单拆分)

如果只是像示例里这样拆分成两个子数组,直接用索引切片最直观高效:

import numpy as np

data = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17])
split_result = [data[:8], data[8:]]
print(split_result)

运行结果:

[array([0, 1, 2, 3, 4, 5, 6, 7]), array([ 8,  9, 10, 11, 12, 13, 14, 15, 16, 17])]

通用拆分法(适用于多个不等长子数组)

如果需要拆分成更多不等长的子数组,可以用np.split(),传入分割索引位置的列表(注意不是子数组长度):

比如要拆成长度为3、5、10的三个子数组,先计算分割索引:3和3+5=8,再传入np.split():

import numpy as np

data = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17])
split_indices = [3, 8]
split_result = np.split(data, split_indices)
print(split_result)

运行结果:

[array([0, 1, 2]), array([3, 4, 5, 6, 7]), array([ 8,  9, 10, 11, 12, 13, 14, 15, 16, 17])]

如果只有子数组长度,需要先把长度转换成累加的索引:比如长度列表[8,10],对应的索引就是[8](因为第一个子数组到索引8结束)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 17:55:15