Skip to main content
`Ctrl`+`K`

# numpy.ma.where

ma.where(condition, x=<no value>, y=<no value>)

  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

      >>> import numpy as np
      >>> 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)