numpy.ma.masked_where

numpy.ma.masked_where(condition, a, copy=True)[source]

屏蔽满足条件的数组。

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

参数:

condition:array_like

屏蔽条件。条件测试浮点值的相等性时,请考虑使用masked_values

a:array_like

数组掩码。

copy:bool

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

返回:

result:MaskedArray

屏蔽a的结果,其中条件为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)

条件为a的掩码数组b

>>> 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)

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)