numpy.seterr#

numpy.seterr(все=None, делить=None, над=None, под=None, invalid=None)[источник]#

Установить, как обрабатываются ошибки с плавающей запятой.

Обратите внимание, что операции над целочисленными скалярными типами (такими как int16) обрабатываются как числа с плавающей запятой и подвержены влиянию этих настроек.

Параметры:
все{‘ignore’, ‘warn’, ‘raise’, ‘call’, ‘print’, ‘log’}, опционально

Установить обработку для всех типов ошибок с плавающей запятой одновременно:

  • ignore: Не предпринимать никаких действий при возникновении исключения.

  • предупреждение: Вывести RuntimeWarning (через Python warnings модуль).

  • 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, in 
FloatingPointError: 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'}