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

一维numpy数组高级切片:索引时如何同时满足多个筛选条件

numpy多条件索引实现说明

numpy数组索引完全支持组合多个筛选条件,你之前的写法错误是因为一维数组不能用逗号分隔多个切片:逗号是高维数组多维度索引的分隔符,用于一维数组会触发维度不匹配错误。你可以通过以下方式实现需求:


方案1:简洁单行实现(基于np.r_拼接切片)

直接用numpy的r_工具拼接多段筛选结果:

import numpy as np
arr = np.arange(40)
res = np.r_[arr[:10], arr[14::6], arr[15::6]]
print(res)

输出完全符合你的预期:

array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 14, 15, 20, 21, 26, 27, 32,
       33, 38, 39])

方案2:布尔掩码实现(适合更复杂的筛选规则)

如果后续筛选规则需要调整,用布尔掩码的方式扩展性更好:

import numpy as np
arr = np.arange(40)
mask = np.zeros_like(arr, dtype=bool)
# 前10个元素全部选中
mask[:10] = True
# 10之后的元素,满足(索引-14)模6小于2的都选中
mask[10:] = ((np.arange(10, len(arr)) - 14) % 6) < 2
res = arr[mask]

运行效果和方案1完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:36:02