dask.array.ma.masked_where
dask.array.ma.masked_where¶
- dask.array.ma.masked_where(condition, a)[源代码]¶
在满足条件的情况下屏蔽数组。
此文档字符串是从 numpy.ma.masked_where 复制而来的。
Dask 版本可能存在一些不一致性。
返回 a 作为数组,其中 condition 为 True 的位置被掩码。a 或 condition 中的任何掩码值在输出中也会被掩码。
- 参数
- 条件array_like
掩码条件。当 condition 测试浮点值是否相等时,考虑使用
masked_values
代替。- aarray_like
数组到掩码。
- 复制bool (Dask 中不支持)
如果为 True(默认),则在结果中创建 a 的副本。如果为 False,则在原地修改 a 并返回视图。
- 返回
- 结果MaskedArray
在 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)