numpy.ma.masked_where #

嘛。masked_where (条件, a ,复制= True ) [来源] #

屏蔽满足条件的数组。

返回a作为屏蔽数组,其中条件为 True。a条件的任何屏蔽值也会在输出中屏蔽。

参数
类似条件数组

掩蔽条件。当条件测试浮点值是否相等时,请考虑改用masked_values

类似数组

要屏蔽的数组。

复制布尔值

如果为 True(默认),则在结果中复制a 。如果为 False,则就地修改 a并返回视图。

返回
结果掩码数组

屏蔽where条件的结果为 True。

也可以看看

masked_values

使用浮点相等的掩码。

masked_equal

掩码等于给定值。

masked_not_equal

掩码等于给定值。

masked_less_equal

小于或等于给定值的掩码。

masked_greater_equal

大于或等于给定值的掩码。

masked_less

小于给定值的掩码。

masked_greater

大于给定值的掩码。

masked_inside

给定区间内的掩码。

masked_outside

掩码超出给定间隔。

masked_invalid

屏蔽无效值(NaN 或 infs)。

例子

>>> import numpy.ma as ma
>>> a = np.arange(4)
>>> a
array([0, 1, 2, 3])
>>> ma.masked_where(a <= 2, a)
masked_array(data=[--, --, --, 3],
             mask=[ True,  True,  True, False],
       fill_value=999999)

掩码数组b以a为条件。

>>> b = ['a', 'b', 'c', 'd']
>>> ma.masked_where(a == 2, b)
masked_array(data=['a', 'b', --, 'd'],
             mask=[False, False,  True, False],
       fill_value='N/A',
            dtype='<U1')

论证的效果copy

>>> c = ma.masked_where(a <= 2, a)
>>> c
masked_array(data=[--, --, --, 3],
             mask=[ True,  True,  True, False],
       fill_value=999999)
>>> c[0] = 99
>>> c
masked_array(data=[99, --, --, 3],
             mask=[False,  True,  True, False],
       fill_value=999999)
>>> a
array([0, 1, 2, 3])
>>> c = ma.masked_where(a <= 2, a, copy=False)
>>> c[0] = 99
>>> c
masked_array(data=[99, --, --, 3],
             mask=[False,  True,  True, False],
       fill_value=999999)
>>> a
array([99,  1,  2,  3])

条件a包含屏蔽值时。

>>> a = np.arange(4)
>>> a = ma.masked_where(a == 2, a)
>>> a
masked_array(data=[0, 1, --, 3],
             mask=[False, False,  True, False],
       fill_value=999999)
>>> b = np.arange(4)
>>> b = ma.masked_where(b == 0, b)
>>> b
masked_array(data=[--, 1, 2, 3],
             mask=[ True, False, False, False],
       fill_value=999999)
>>> ma.masked_where(a == 3, b)
masked_array(data=[--, 1, --, --],
             mask=[ True, False,  True,  True],
       fill_value=999999)