SciPy

numpy.ma.where

numpy.ma.where(condition, x=<no value>, y=<no value>)[source]

Return a masked array with elements from x or y, depending on condition.

Note

When only condition is provided, this function is identical to nonzero. The rest of this documentation covers only the case where all three arguments are provided.

Parameters:
condition : array_like, bool

Where True, yield x, otherwise yield y.

x, y : array_like, optional

Values from which to choose. x, y and condition need to be broadcastable to some shape.

Returns:
out : MaskedArray

An masked array with masked elements where the condition is masked, elements from x where condition is True, and elements from y elsewhere.

See also

numpy.where
Equivalent function in the top-level NumPy module.
nonzero
The function that is called when x and y are omitted

Examples

>>> x = np.ma.array(np.arange(9.).reshape(3, 3), mask=[[0, 1, 0],
...                                                    [1, 0, 1],
...                                                    [0, 1, 0]])
>>> x
masked_array(
  data=[[0.0, --, 2.0],
        [--, 4.0, --],
        [6.0, --, 8.0]],
  mask=[[False,  True, False],
        [ True, False,  True],
        [False,  True, False]],
  fill_value=1e+20)
>>> np.ma.where(x > 5, x, -3.1416)
masked_array(
  data=[[-3.1416, --, -3.1416],
        [--, -3.1416, --],
        [6.0, --, 8.0]],
  mask=[[False,  True, False],
        [ True, False,  True],
        [False,  True, False]],
  fill_value=1e+20)

Previous topic

numpy.ma.indices

Next topic

The Array Interface