Spec-Zone.ru › NumPy 1.11

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_settings : dict

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

См. также

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

geterr, geterrcall, errstate

Примечания

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

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

© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.11.0/reference/generated/numpy.seterr.html

Spec-Zone.ru

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