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

如何在Python的NumPy中按指定间隔拆分数组?split函数使用遇阻

按指定数值点拆分numpy数组的解决方案

首先说你用np.split()失败的原因:numpy的split函数接收的拆分参数是数组的索引位置,不是数组里的数值。如果你直接把10、25这些数值当参数传,要么是参数格式不对(比如没放进列表),哪怕你的x是np.arange(100)、数值等于索引,也会因为参数形式错误导致无法正常拆分。

下面给你两种实现方式:

1. 针对当前数组的简易写法

因为你的x是np.arange(100),元素值和索引完全一致,直接把拆分数值放进列表传给np.split()就行:

import numpy as np

x = np.arange(100)
# 定义拆分的数值点
split_points = [10, 25, 45, 75, 95]
# 执行拆分
split_result = np.split(x, split_points)

# 验证结果
for i, part in enumerate(split_result):
    print(f"第{i+1}段: {part}")

执行后会得到6个子数组:[0-9]、[10-24]、[25-44]、[45-74]、[75-94]、[95-99],完全符合你的需求。

2. 通用写法(适配任意数组)

如果你的数组元素和索引不一致(比如数组是打乱的、非连续的),就需要先把拆分数值转换成对应的索引位置,用np.searchsorted()实现:

import numpy as np

x = np.arange(100)
split_values = [10, 25, 45, 75, 95]
# 找到每个拆分数值对应的插入索引(也就是拆分位置)
split_indices = np.searchsorted(x, split_values)
split_result = np.split(x, split_indices)

这个方法不管数组是否有序、元素是否和索引匹配,都能正确完成拆分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 05:16:06