numpy.seterr
-
numpy.seterr(all=None, divide=None, over=None, under=None, invalid=None)[source] -
Устанавливает обработку ошибок с плавающей запятой.
Обратите внимание, что операции над целочисленными скалярными типами (такими как
int16) обрабатываются как операции с плавающей запятой и влияют на эти настройки.Параметры: all : {‘ignore’, ‘warn’, ‘raise’, ‘call’, ‘print’, ‘log’}, optional
Устанавливает обработку всех типов ошибок с плавающей запятой одновременно:
- ignore: Не предпринимать никаких действий при возникновении исключения.
- warn: Вывести сообщение
RuntimeWarning(через модуль Pythonwarnings). - raise: Вызвать
FloatingPointError. - call: Вызвать функцию, указанную с помощью функции
seterrcall. - print: Вывести предупреждение непосредственно в
stdout. - log: Записать ошибку в объект Log, указанный функцией
seterrcall.
По умолчанию текущее поведение не изменяется.
divide : {‘ignore’, ‘warn’, ‘raise’, ‘call’, ‘print’, ‘log’}, optional
Обработка деления на ноль.
over : {‘ignore’, ‘warn’, ‘raise’, ‘call’, ‘print’, ‘log’}, optional
Обработка переполнения с плавающей запятой.
under : {‘ignore’, ‘warn’, ‘raise’, ‘call’, ‘print’, ‘log’}, optional
Обработка подпотока с плавающей запятой.
invalid : {‘ignore’, ‘warn’, ‘raise’, ‘call’, ‘print’, ‘log’}, optional
Обработка недействительной операции с плавающей запятой.
Возвращает: old_settings : dict
Словарь, содержащий старые настройки.
См. также
seterrcall- Установить функцию обратного вызова для режима «call».
Примечания
Ошибки с плавающей запятой определены в стандарте IEEE 754 [1]:
- Деление на ноль: бесконечный результат, полученный из конечных чисел.
- Переполнение: результат слишком большой, чтобы его можно было выразить.
- Подпоток: результат настолько близок к нулю, что была потеряна точность.
- Недействительная операция: результат не является выразимым числом, обычно указывает на то, что был создан NaN.
[R281] http://en.wikipedia.org/wiki/IEEE_754 Примеры
>>> old_settings = np.seterr(all='ignore') #seterr to known value >>> np.seterr(over='raise') {'over': 'ignore', 'divide': 'ignore', 'invalid': 'ignore', 'under': 'ignore'} >>> np.seterr(**old_settings) # reset to default {'over': 'raise', 'divide': 'ignore', 'invalid': 'ignore', 'under': 'ignore'}>>> np.int16(32000) * np.int16(3) 30464 >>> old_settings = np.seterr(all='warn', over='raise') >>> np.int16(32000) * np.int16(3) Traceback (most recent call last): File "<stdin>", line 1, in <module> FloatingPointError: overflow encountered in short_scalars
>>> old_settings = np.seterr(all='print') >>> np.geterr() {'over': 'print', 'divide': 'print', 'invalid': 'print', 'under': 'print'} >>> np.int16(32000) * np.int16(3) Warning: overflow encountered in short_scalars 30464
© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.11.0/reference/generated/numpy.seterr.html