numpy.ma.masked_where#
- ma.masked_where(condition, a, copy=True)[source]#
在條件滿足的地方遮罩陣列。
傳回 a,當 condition 為 True 時遮罩。 a 或 condition 中任何被遮罩的值在輸出中也會被遮罩。
- 參數:
- 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])
當 condition 或 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)