Skip to main content
`Ctrl`+`K`

# numpy.ma.MaskedArray.filled

method

ma.MaskedArray.filled(fill_value=None)

  Return a copy of self, with masked values filled with a given value. However, if there are no masked values to fill, self will be returned instead as an ndarray.

  Parameters:
    fill_value array_like, optional

      The value to use for invalid entries. Can be scalar or non-scalar. If non-scalar, the resulting ndarray must be broadcastable over input array. Default is None, in which case, the `fill_value` attribute of the array is used instead.

  Returns:
    filled_array ndarray

      A copy of `self` with invalid entries replaced by fill_value (be it the function argument or the attribute of `self`), or `self` itself as an ndarray if there are no invalid entries to be replaced.

  Notes

  The result is not a MaskedArray!

  Examples

      >>> import numpy as np
      >>> x = np.ma.array([1,2,3,4,5], mask=[0,0,1,0,1], fill_value=-999)
      >>> x.filled()
      array([   1,    2, -999,    4, -999])
      >>> x.filled(fill_value=1000)
      array([   1,    2, 1000,    4, 1000])
      >>> type(x.filled())
      <class 'numpy.ndarray'>

  Subclassing is preserved. This means that if, e.g., the data part of the masked array is a recarray, `filled` returns a recarray:

      >>> x = np.array([(-1, 2), (-3, 4)], dtype='i8,i8').view(np.recarray)
      >>> m = np.ma.array(x, mask=[(True, False), (False, True)])
      >>> m.filled()
      rec.array([(999999,      2), (    -3, 999999)],
                dtype=[('f0', '<i8'), ('f1', '<i8')])