Skip to main content
`Ctrl`+`K`

# numpy.ma.make_mask

ma.make_mask(m, copy=False, shrink=True, dtype=<class 'numpy.bool'>)

  Create a boolean mask from an array.

  Return m as a boolean mask, creating a copy if necessary or requested. The function can accept any sequence that is convertible to integers, or `nomask`. Does not require that contents must be 0s and 1s, values of 0 are interpreted as False, everything else as True.

  Parameters:
    m array_like

      Potential mask.

    copy bool, optional

      Whether to return a copy of m (True) or m itself (False).

    shrink bool, optional

      Whether to shrink m to `nomask` if all its values are False.

    dtype dtype, optional

      Data-type of the output mask. By default, the output mask has a dtype of MaskType (bool). If the dtype is flexible, each field has a boolean dtype. This is ignored when m is `nomask`, in which case `nomask` is always returned.

  Returns:
    result ndarray

      A boolean mask derived from m.

  Examples

      >>> import numpy as np
      >>> import numpy.ma as ma
      >>> m = [True, False, True, True]
      >>> ma.make_mask(m)
      array([ True, False,  True,  True])
      >>> m = [1, 0, 1, 1]
      >>> ma.make_mask(m)
      array([ True, False,  True,  True])
      >>> m = [1, 0, 2, -3]
      >>> ma.make_mask(m)
      array([ True, False,  True,  True])

  Effect of the shrink parameter.

      >>> m = np.zeros(4)
      >>> m
      array([0., 0., 0., 0.])
      >>> ma.make_mask(m)
      False
      >>> ma.make_mask(m, shrink=False)
      array([False, False, False, False])

  Using a flexible `dtype`.

      >>> m = [1, 0, 1, 1]
      >>> n = [0, 1, 0, 0]
      >>> arr = []
      >>> for man, mouse in zip(m, n):
      ...     arr.append((man, mouse))
      >>> arr
      [(1, 0), (0, 1), (1, 0), (1, 0)]
      >>> dtype = np.dtype({'names':['man', 'mouse'],
      ...                   'formats':[np.int64, np.int64]})
      >>> arr = np.array(arr, dtype=dtype)
      >>> arr
      array([(1, 0), (0, 1), (1, 0), (1, 0)],
            dtype=[('man', '<i8'), ('mouse', '<i8')])
      >>> ma.make_mask(arr, dtype=dtype)
      array([(True, False), (False, True), (True, False), (True, False)],
            dtype=[('man', '|b1'), ('mouse', '|b1')])