如何从np.split()的拆分结果中移除指定数组片段?
解决方案
用np.split()拆分数组后,直接筛选偶数索引的片段即可,无需复杂循环。步骤如下:
- 将原数组转换为numpy数组(
np.split()仅支持numpy数组)。 - 使用
np.split()按切割位置数组拆分原数组。 - 提取拆分结果中偶数索引(从0开始)的片段,转换为列表格式(如果需要)。
示例代码
import numpy as np # 原数组 a = np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]) # 切割位置数组 cut_array = [3,6,10,13] # 按切割位置拆分数组 split_segments = np.split(a, cut_array) # 保留偶数索引的片段(跳过每两个切割位置之间的部分) result = [seg.tolist() for seg in split_segments[::2]] print(result) # 输出: [[1, 2, 3], [7, 8, 9, 10], [14, 15]]
边界情况处理
如果切割位置包含数组开头(0)或结尾(数组长度),可能会产生空片段,可通过过滤去除:
# 过滤空片段 result = [seg.tolist() for seg in split_segments[::2] if len(seg) > 0]
比如切割位置为[0,3,15]时,原拆分结果为[[], [1,2,3], [4,5,...,15], []],过滤后得到[[1,2,3], [4,5,...,15]]。
内容的提问来源于stack exchange,提问作者evan
相关产品推荐
相关产品推荐

