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 的位置被掩码。acondition 中的任何掩码值在输出中也会被掩码。

参数
条件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])

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)