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

如何正确判断NumPy掩码数组中显示为--的掩码值?

解决掩码数组元素的判断问题

你代码里的问题在于:打印时显示的--只是numpy掩码数组的可视化格式,并不是元素实际存储的值,所以直接用a[i] == "--"肯定匹配不到。

下面给你两种符合需求的逐个判断方法:

方法1:使用ma.is_masked()函数

这个函数专门用来判断单个元素是否被掩码,用法直接明了:

import numpy as np
import numpy.ma as ma

x = np.array([1,2,3,4,5])
a = ma.masked_array(x, mask=[0, 0, 0, 1, 0])

for i in range(5):
    if ma.is_masked(a[i]):
        print("a[{0:d}] is masked value".format(i))

方法2:直接访问掩码数组的mask属性

掩码数组的mask本身就是一个布尔数组,对应位置为True就表示该元素被掩码:

import numpy as np
import numpy.ma as ma

x = np.array([1,2,3,4,5])
a = ma.masked_array(x, mask=[0, 0, 0, 1, 0])

for i in range(5):
    if a.mask[i]:
        print("a[{0:d}] is masked value".format(i))

这两种方法都不需要转换整个数组,完全满足你逐个判断的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 18:27:22