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.Примечание о параллелизме: см. Обработка ошибок с плавающей точкой
Примеры
>>> 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, inFloatingPointError: 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 как функцию.