numpy.errstate#

класс numpy.errstate(**kwargs)[источник]#

Контекстный менеджер для обработки ошибок с плавающей точкой.

Используя экземпляр errstate в качестве контекстного менеджера позволяет операторам в этом контексте выполняться с известным поведением обработки ошибок. При входе в контекст обработка ошибок устанавливается с помощью seterr и seterrcall, и при выходе он сбрасывается к предыдущему значению.

Изменено в версии 1.17.0: errstate также может использоваться как декоратор функции, экономя один уровень вложенности, если вся функция обёрнута.

Изменено в версии 2.0: errstate теперь полностью потокобезопасен и безопасен для asyncio, но не может быть введён более одного раза. Небезопасно декорировать асинхронные функции с использованием errstate.

Параметры:
kwargs{divide, over, under, invalid}

Именованные аргументы. Допустимые ключевые слова — это возможные исключения с плавающей запятой. Каждое ключевое слово должно иметь строковое значение, определяющее обработку конкретной ошибки. Возможные значения: {'ignore', 'warn', 'raise', 'call', 'print', 'log'}.

Смотрите также

seterr, geterr, seterrcall, geterrcall

Примечания

Полную документацию по типам исключений с плавающей запятой и вариантам обработки см. в seterr.

Примечание о параллелизме: см. Обработка ошибок с плавающей точкой

Примеры

>>> 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 "", line 2, in 
FloatingPointError: invalid value encountered in sqrt

Вне контекста поведение обработки ошибок не изменилось:

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

Методы

__call__(func)

Вызвать self как функцию.