Spec-Zone.ru › NumPy 1.20

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 (через модуль Python warnings).
  • 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_settingsdict

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

См. также

seterrcall

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

geterr, geterrcall, errstate

Примечания

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

  • Деление на ноль: бесконечный результат, полученный из конечных чисел.
  • Переполнение: результат слишком велик для выражения.
  • Потеря значимости: результат настолько близок к нулю, что была потеряна точность.
  • Некорректная операция: результат не является выразимым числом, обычно указывает на то, что был произведен NaN.
1

https://en.wikipedia.org/wiki/IEEE_754

Примеры

>>> old_settings = np.seterr(all='ignore')  #seterr to known value
>>> np.seterr(over='raise')
{'divide': 'ignore', 'over': 'ignore', 'under': 'ignore', 'invalid': 'ignore'}
>>> np.seterr(**old_settings)  # reset to default
{'divide': 'ignore', 'over': 'raise', 'under': 'ignore', 'invalid': '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
>>> from collections import OrderedDict
>>> old_settings = np.seterr(all='print')
>>> OrderedDict(np.geterr())
OrderedDict([('divide', 'print'), ('over', 'print'), ('under', 'print'), ('invalid', 'print')])
>>> np.int16(32000) * np.int16(3)
30464

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

Spec-Zone.ru

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