Skip to main content
`Ctrl`+`K`

# numpy.errstate

class numpy.errstate(**kwargs)

  Context manager for floating-point error handling.

  Using an instance of `errstate` as a context manager allows statements in that context to execute with a known error handling behavior. Upon entering the context the error handling is set with `seterr` and `seterrcall`, and upon exiting it is reset to what it was before.

  Changed in version 1.17.0: `errstate` is also usable as a function decorator, saving a level of indentation if an entire function is wrapped.

  Changed in version 2.0: `errstate` is now fully thread and asyncio safe, but may not be entered more than once. It is not safe to decorate async functions using `errstate`.

  Parameters:
    kwargs{divide, over, under, invalid}

      Keyword arguments. The valid keywords are the possible floating-point exceptions. Each keyword should have a string value that defines the treatment for the particular error. Possible values are {‘ignore’, ‘warn’, ‘raise’, ‘call’, ‘print’, ‘log’}.

  Methods

  `__call__`(func) | Call self as a function.

  See also

  `seterr`, `geterr`, `seterrcall`, `geterrcall`

  Notes

  For complete documentation of the types of floating-point exceptions and treatment options, see `seterr`.

  Concurrency note: see Floating point error handling

  Examples

      >>> import numpy as np
      >>> olderr = np.seterr(all='ignore')  # Set error handling to known state.

      >>> np.arange(3) / 0.
      array([nan, inf, inf])
      >>> with np.errstate(divide='ignore'):
      ...     np.arange(3) / 0.
      array([nan, inf, inf])

      >>> np.sqrt(-1)
      np.float64(nan)
      >>> with np.errstate(invalid='raise'):
      ...     np.sqrt(-1)
      Traceback (most recent call last):
        File "<stdin>", line 2, in <module>
      FloatingPointError: invalid value encountered in sqrt

  Outside the context the error handling behavior has not changed:

      >>> np.geterr()
      {'divide': 'ignore', 'over': 'ignore', 'under': 'ignore', 'invalid': 'ignore'}
      >>> olderr = np.seterr(**olderr)  # restore original state