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

如何将NumPy数组拆分为不等长的多个子数组?

最优实现方式:用np.split()一键搞定

嘿,这个需求其实用NumPy自带的np.split()就能轻松实现,而且这是最简洁高效的原生方案~

直接上代码:

import numpy as np
x = np.array([1, 2, 3, 99, 99, 3, 2, 1])
# 通过指定拆分点索引,一次性拆分成三个不等长子数组
x1, x2, x3 = np.split(x, [3, 5])

print(x1)  # 输出: array([1, 2, 3])
print(x2)  # 输出: array([99, 99])
print(x3)  # 输出: array([3, 2, 1])

为什么这是最优选择?

  • 原生高效:np.split()是NumPy底层优化过的函数,比手动写多次切片的性能更优,处理大规模数组时优势更明显。
  • 逻辑清晰:传入的[3,5]是拆分点的索引,意思是在原数组的索引3、索引5位置各切一刀,按左闭右开的规则分成三个部分:
    • 从开头到索引3(不含3):x[:3] → 对应x1
    • 从索引3到索引5(不含5):x[3:5] → 对应x2
    • 从索引5到结尾:x[5:] → 对应x3

当然,如果你偏好手动切片也能实现,但代码会更零散:

x1 = x[:3]
x2 = x[3:5]
x3 = x[5:]

这种方式适合简单场景,但子数组数量变多的时候,np.split()的可维护性会强很多。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:09:46