Spec-Zone.ru › NumPy 2.0

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: Запись ошибки в объект журнала, указанный в 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

Примеры

>>> orig_settings = np.seterr(all='ignore')  # seterr to known value
>>> np.int16(32000) * np.int16(3)
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 "<stdin>", line 1, in <module>
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)
30464
>>> np.seterr(**orig_settings)  # restore original
{'divide': 'print', 'over': 'print', 'under': 'print', 'invalid': 'print'}

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

Spec-Zone.ru

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