Как исправить: RuntimeWarning: переполнение в exp


Одно предупреждение, с которым вы можете столкнуться в Python:

RuntimeWarning: overflow encountered in exp

Это предупреждение появляется, когда вы используете функцию выражения NumPy , но используете слишком большое значение для ее обработки.

Важно отметить, что это просто предупреждение и что NumPy все равно выполнит запрошенный вами расчет, но по умолчанию выдает предупреждение.

Когда вы сталкиваетесь с этим предупреждением, у вас есть два варианта:

1. Не обращайте внимания.

2. Полностью отключите предупреждение.

В следующем примере показано, как устранить это предупреждение на практике.

Как воспроизвести предупреждение

Предположим, мы выполняем следующий расчет в Python:

import numpy as np

#perform some calculation
print(1/(1+np.exp (1140)))

0.0

/srv/conda/envs/notebook/lib/python3.7/site-packages/ipykernel_launcher.py:3:
RuntimeWarning: overflow encountered in exp

Обратите внимание, что NumPy выполняет вычисления (результат равен 0,0), но по-прежнему печатает RuntimeWarning .

Это предупреждение выводится, потому что значение np.exp(1140) представляет e 1140 , что является массивным числом.

В основном мы просили NumPy выполнить следующие вычисления:

  • 1 / (1 + массивное число)

Это можно сократить до:

  • 1 / массивное число

Фактически это 0, поэтому NumPy вычислил результат равным 0.0 .

Как подавить предупреждение

Если мы хотим, мы можем использовать пакет warnings для подавления предупреждений следующим образом:

import numpy as np
import warnings

#suppress warnings
warnings. filterwarnings('ignore')

#perform some calculation
print(1/(1+np.exp (1140)))

0.0

Обратите внимание, что NumPy выполняет вычисления и не отображает RuntimeWarning.

Примечание.Как правило, предупреждения могут быть полезны для определения фрагментов кода, выполнение которых занимает много времени, поэтому будьте очень избирательны при принятии решения об отключении предупреждений.

Дополнительные ресурсы

В следующих руководствах объясняется, как исправить другие распространенные ошибки в Python:

Как исправить KeyError в Pandas
Как исправить: ValueError: невозможно преобразовать число с плавающей запятой NaN в целое число
Как исправить: ValueError: операнды не могли транслироваться вместе с фигурами

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.