Skip to main content
`Ctrl`+`K`

# numpy.ma.notmasked_contiguous

ma.notmasked_contiguous(a, axis=None)

  Find contiguous unmasked data in a masked array along the given axis.

  Parameters:
    a array_like

      The input array.

    axis int, optional

      Axis along which to perform the operation. If None (default), applies to a flattened version of the array, and this is the same as `flatnotmasked_contiguous`.

  Returns:
    endpoints list

      A list of slices (start and end indexes) of unmasked indexes in the array.

      If the input is 2d and axis is specified, the result is a list of lists.

  See also

  `flatnotmasked_edges`, `flatnotmasked_contiguous`, `notmasked_edges`
  `clump_masked`, `clump_unmasked`

  Notes

  Only accepts 2-D arrays at most.

  Examples

      >>> import numpy as np
      >>> a = np.arange(12).reshape((3, 4))
      >>> mask = np.zeros_like(a)
      >>> mask[1:, :-1] = 1; mask[0, 1] = 1; mask[-1, 0] = 0
      >>> ma = np.ma.array(a, mask=mask)
      >>> ma
      masked_array(
        data=[[0, --, 2, 3],
              [--, --, --, 7],
              [8, --, --, 11]],
        mask=[[False,  True, False, False],
              [ True,  True,  True, False],
              [False,  True,  True, False]],
        fill_value=999999)
      >>> np.array(ma[~ma.mask])
      array([ 0,  2,  3,  7, 8, 11])

      >>> np.ma.notmasked_contiguous(ma)
      [slice(0, 1, None), slice(2, 4, None), slice(7, 9, None), slice(11, 12, None)]

      >>> np.ma.notmasked_contiguous(ma, axis=0)
      [[slice(0, 1, None), slice(2, 3, None)], [], [slice(0, 1, None)], [slice(0, 3, None)]]

      >>> np.ma.notmasked_contiguous(ma, axis=1)
      [[slice(0, 1, None), slice(2, 4, None)], [slice(3, 4, None)], [slice(0, 1, None), slice(3, 4, None)]]