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

如何获取numpy掩码数组中掩码区域包含的所有唯一元素

Numpy提取掩码数组被掩码区域唯一元素的方法

针对你给出的示例场景,可直接通过布尔索引+集合转换实现需求,操作逻辑非常简单:


核心原理

numpy的布尔索引会自动提取所有掩码为True的对应位置元素,返回一维数组,转为Python集合时会自动完成去重。


完整示例代码

import numpy as np

# 你给出的示例数组
seg = np.array([[1,2,3,4]])
mask = np.array([[False, True, False, True]])

# 仅需一行代码得到目标集合
target_set = set(seg[mask])
print(target_set) # 输出结果:{2, 4}

其他场景适配

如果你使用的是numpy封装好的MaskedArray类型(数组和掩码绑定的对象),可按以下方式操作:

# 构造MaskedArray示例
ma_seg = np.ma.array(seg, mask=mask)
# 提取被掩码区域元素转集合
target_set = set(ma_seg[ma_seg.mask])

如果处理的数组规模非常大,推荐先调用numpy原生去重方法再转集合,运算效率更高:

target_set = set(np.unique(seg[mask]))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 09:54:03