Spec-Zone.ru › NumPy 1.21

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: Выводит предупреждение (с помощью модуля Python warnings).
  • raise: Вызывает исключение FloatingPointError.
  • call: Вызывает функцию, указанную с помощью функции seterrcall.
  • print: Выводит предупреждение непосредственно в stdout.
  • 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_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
>>> old_settings = np.seterr(all='print')
>>> np.geterr()
{'divide': 'print', 'over': 'print', 'under': 'print', 'invalid': 'print'}
>>> np.int16(32000) * np.int16(3)
30464

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

Spec-Zone.ru

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