numpy.ma.masked_where — NumPy v1.11 Manual (original) (raw)

numpy.ma.masked_where(condition, a, copy=True)[source]

Mask an array where a condition is met.

Return a as an array masked where condition is True. Any masked values of a or condition are also masked in the output.

Parameters: condition : array_like Masking condition. When condition tests floating point values for equality, consider using masked_values instead. a : array_like Array to mask. copy : bool If True (default) make a copy of a in the result. If False modify_a_ in place and return a view.
Returns: result : MaskedArray The result of masking a where condition is True.

Examples

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)

Mask array b conditional on 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)

Effect of the copy argument.

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])

When condition or a contain masked values.

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)