Spec-Zone.ru › NumPy 1.14

numpy.seterr

numpy.seterr(all=None, divide=None, over=None, under=None, invalid=None) [source]

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

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

Параметры:

all : {‘ignore’, ‘warn’, ‘raise’, ‘call’, ‘print’, ‘log’}, необязательно

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

  • ignore: Не выполняет никаких действий при возникновении исключения.
  • warn: Выводит предупреждение RuntimeWarning (через модуль Python warnings).
  • raise: Вызывает исключение FloatingPointError.
  • call: Вызывает функцию, указанную с помощью функции seterrcall.
  • print: Выводит предупреждение напрямую в stdout.
  • log: Записывает ошибку в объект Log, указанный в seterrcall.

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

divide : {‘ignore’, ‘warn’, ‘raise’, ‘call’, ‘print’, ‘log’}, необязательно

Обработка деления на ноль.

over : {‘ignore’, ‘warn’, ‘raise’, ‘call’, ‘print’, ‘log’}, необязательно

Обработка переполнения с плавающей запятой.

under : {‘ignore’, ‘warn’, ‘raise’, ‘call’, ‘print’, ‘log’}, необязательно

Обработка недополнения с плавающей запятой.

invalid : {‘ignore’, ‘warn’, ‘raise’, ‘call’, ‘print’, ‘log’}, необязательно

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

Возвращает:

old_settings : dict

Словарь, содержащий старые настройки.

См. также

seterrcall
Установить функцию обратного вызова для режима «call».

geterr, geterrcall, errstate

Примечания

Исключения с плавающей запятой определены в стандарте IEEE 754 [1]:

  • Деление на ноль: бесконечный результат, полученный из конечных чисел.
  • Переполнение: результат слишком большой, чтобы быть выраженным.
  • Недополнение: результат настолько близок к нулю, что была потеряна точность.
  • Недопустимая операция: результат не является выражаемым числом, обычно указывает на то, что был получен NaN.
[R290] 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

© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.14.5/reference/generated/numpy.seterr.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API