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)