# cf.AuxiliaryCoordinate.mask_invalid

`AuxiliaryCoordinate.``mask_invalid`(i=False)

  Mask the array where invalid values occur.

  Note that:

  - Invalid values are Nan or inf
  - Invalid values in the results of arithmetic operations only occur if the raising of `FloatingPointError` exceptions has been suppressed by `cf.Data.seterr`.
  - If the raising of `FloatingPointError` exceptions has been allowed then invalid values in the results of arithmetic operations it is possible for them to be automatically converted to masked values, depending on the setting of `cf.Data.mask_fpe`. In this case, such automatic conversion might be faster than calling `mask_invalid`.

  See also

  `cf.Data.mask_fpe`, `cf.Data.seterr`

  Examples 1: |

      >>> g = f.mask_invalid()

  Parameters: | i: `bool`, optional If True then update the auxiliary coordinate in place. By default a new auxiliary coordinate is created. In either case, a auxiliary coordinate is returned.
  Returns: | out: `cf.AuxiliaryCoordinate`
  Examples 2: |

      >>> print f.array
      [ 0.  1.]
      >>> print g.array
      [ 1.  2.]

      >>> old = cf.Data.seterr('ignore')
      >>> h = g/f
      >>> print h.array
      [ inf   2.]
      >>> h.mask_invalid(i=True)
      >>> print  h.array
      [--  2.]

      >>> h = g**12345
      >>> print h.array
      [ 1.  inf]
      >>> h = h.mask_invalid()
      >>> print h.array
      [1.  --]

      >>> old = cf.Data.seterr('raise')
      >>> old = cf.Data.mask_fpe(True)
      >>> print (g/f).array
      [ --  2]
      >>> print (g**12345).array
      [1.  -- ]