numpy.ma.masked_where#

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

在條件滿足的地方遮罩陣列。

傳回 a,當 condition 為 True 時遮罩。 acondition 中任何被遮罩的值在輸出中也會被遮罩。

參數:
conditionarray_like

遮罩條件。 當 condition 測試浮點數值的相等性時,請考慮改用 masked_values

aarray_like

要遮罩的陣列。

copybool

如果為 True(預設),則在結果中複製 a。 如果為 False,則就地修改 a 並傳回視圖。

返回:
resultMaskedArray

condition 為 True 時遮罩 a 的結果。

另請參閱

masked_values

使用浮點數相等性進行遮罩。

masked_equal

在等於給定值的地方遮罩。

masked_not_equal

等於給定值的地方遮罩。

masked_less_equal

在小於或等於給定值的地方遮罩。

masked_greater_equal

在大於或等於給定值的地方遮罩。

masked_less

在小於給定值的地方遮罩。

masked_greater

在大於給定值的地方遮罩。

masked_inside

在給定區間內遮罩。

masked_outside

在給定區間外遮罩。

masked_invalid

遮罩無效值 (NaN 或 inf)。

範例

>>> import numpy as np
>>> 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',
            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])

conditiona 包含被遮罩的值時。

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