numpy.seterr#
- numpy.seterr(все=None, делить=None, над=None, под=None, invalid=None)[источник]#
Установить, как обрабатываются ошибки с плавающей запятой.
Обратите внимание, что операции над целочисленными скалярными типами (такими как
int16) обрабатываются как числа с плавающей запятой и подвержены влиянию этих настроек.- Параметры:
- все{‘ignore’, ‘warn’, ‘raise’, ‘call’, ‘print’, ‘log’}, опционально
Установить обработку для всех типов ошибок с плавающей запятой одновременно:
ignore: Не предпринимать никаких действий при возникновении исключения.
предупреждение: Вывести
RuntimeWarning(через Pythonwarningsмодуль).raise: Вызвать
FloatingPointError.вызов: Вызовите функцию, указанную с помощью
seterrcallфункция.print: Напечатать предупреждение напрямую в
stdout.log: Записывает ошибку в объект Log, указанный
seterrcall.
По умолчанию поведение не изменяется.
- делить{‘ignore’, ‘warn’, ‘raise’, ‘call’, ‘print’, ‘log’}, опционально
Обработка деления на ноль.
- над{‘ignore’, ‘warn’, ‘raise’, ‘call’, ‘print’, ‘log’}, опционально
Обработка переполнения чисел с плавающей точкой.
- под{‘ignore’, ‘warn’, ‘raise’, ‘call’, ‘print’, ‘log’}, опционально
Обработка потери точности для чисел с плавающей точкой.
- invalid{‘ignore’, ‘warn’, ‘raise’, ‘call’, ‘print’, ‘log’}, опционально
Обработка недопустимой операции с плавающей запятой.
- Возвращает:
- old_settingsdict
Словарь, содержащий старые настройки.
Смотрите также
seterrcallУстановить функцию обратного вызова для режима 'call'.
geterr,geterrcall,errstate
Примечания
Исключения с плавающей запятой определены в стандарте IEEE 754 [1]:
Деление на ноль: получен бесконечный результат из конечных чисел.
Переполнение: результат слишком велик для представления.
Потеря значимости: результат настолько близок к нулю, что была потеряна некоторая точность.
Недопустимая операция: результат не является выражаемым числом, обычно указывает на то, что был получен NaN.
Примечание о параллелизме: см. Обработка ошибок с плавающей точкой
Примеры
>>> import numpy as np >>> orig_settings = np.seterr(all='ignore') # seterr to known value >>> np.int16(32000) * np.int16(3) np.int16(30464) >>> np.seterr(over='raise') {'divide': 'ignore', 'over': 'ignore', 'under': 'ignore', 'invalid': 'ignore'} >>> old_settings = np.seterr(all='warn', over='raise') >>> np.int16(32000) * np.int16(3) Traceback (most recent call last): File "
" , line 1, inFloatingPointError: overflow encountered in scalar multiply >>> old_settings = np.seterr(all='print') >>> np.geterr() {'divide': 'print', 'over': 'print', 'under': 'print', 'invalid': 'print'} >>> np.int16(32000) * np.int16(3) np.int16(30464) >>> np.seterr(**orig_settings) # restore original {'divide': 'print', 'over': 'print', 'under': 'print', 'invalid': 'print'}