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)