# dask.array.ma.masked_where

### dask.array.ma.masked_where(condition, a)

Mask an array where a condition is met.

This docstring was copied from numpy.ma.masked_where.

Some inconsistencies with the Dask version may exist.

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**
  : Masking condition.  When condition tests floating point values for
    equality, consider using `masked_values` instead.

  **a**
  : Array to mask.

  **copy**
  : If True (default) make a copy of a in the result.  If False modify
    a in place and return a view.
* **Returns:**
  **result**
  : The result of masking a where condition is True.

#### SEE ALSO
[`masked_values`](dask.array.ma.masked_values.html.md#dask.array.ma.masked_values)
: Mask using floating point equality.

[`masked_equal`](dask.array.ma.masked_equal.html.md#dask.array.ma.masked_equal)
: Mask where equal to a given value.

[`masked_not_equal`](dask.array.ma.masked_not_equal.html.md#dask.array.ma.masked_not_equal)
: Mask where *not* equal to a given value.

[`masked_less_equal`](dask.array.ma.masked_less_equal.html.md#dask.array.ma.masked_less_equal)
: Mask where less than or equal to a given value.

[`masked_greater_equal`](dask.array.ma.masked_greater_equal.html.md#dask.array.ma.masked_greater_equal)
: Mask where greater than or equal to a given value.

[`masked_less`](dask.array.ma.masked_less.html.md#dask.array.ma.masked_less)
: Mask where less than a given value.

[`masked_greater`](dask.array.ma.masked_greater.html.md#dask.array.ma.masked_greater)
: Mask where greater than a given value.

[`masked_inside`](dask.array.ma.masked_inside.html.md#dask.array.ma.masked_inside)
: Mask inside a given interval.

[`masked_outside`](dask.array.ma.masked_outside.html.md#dask.array.ma.masked_outside)
: Mask outside a given interval.

[`masked_invalid`](dask.array.ma.masked_invalid.html.md#dask.array.ma.masked_invalid)
: Mask invalid values (NaNs or infs).

### Examples

```pycon
>>> 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)
```

Mask array b conditional on a.

```pycon
>>> 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')
```

Effect of the copy argument.

```pycon
>>> 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.

```pycon
>>> 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)
```

<!-- !! processed by numpydoc !! -->
