Как исправить: в true_divide обнаружено недопустимое значение
Одно предупреждение, с которым вы можете столкнуться при использовании NumPy:
RuntimeWarning : invalid value encountered in true_divide
Это предупреждение появляется, когда вы пытаетесь разделить на недопустимое значение (например, NaN, Inf и т. д.) в массиве NumPy.
Следует отметить, что это всего лишь предупреждение , и NumPy просто вернет значение nan при попытке деления на недопустимое значение.
В следующем примере показано, как на практике реагировать на это предупреждение.
Как воспроизвести ошибку
Предположим, мы пытаемся разделить значения одного массива NumPy на значения другого массива NumPy:
import numpy as np #define NumPy arrays x = np. array ([4, 5, 5, 7, 0]) y = np. array ([2, 4, 6, 7, 0]) #divide the values in x by the values in y n.p. divide (x,y) array([2., 1.25, 0.8333, 1., no]) RuntimeWarning : invalid value encountered in true_divide
Обратите внимание, что NumPy делит каждое значение x на соответствующее значение y, но создается RuntimeWarning .
Это связано с тем, что последней выполненной операцией деления было деление нуля на ноль, что привело к значению nan .
Как реагировать на это предупреждение
Как упоминалось ранее, это RuntimeWarning является всего лишь предупреждением и не препятствует выполнению кода.
Однако если вы хотите подавить этот тип предупреждения, вы можете использовать следующий синтаксис:
n.p. seterr (invalid=' ignore ')
Это говорит NumPy скрывать любые предупреждения, содержащие «недопустимое» сообщение.
Поэтому, если мы запустим код еще раз, мы не получим никаких предупреждений:
import numpy as np #define NumPy arrays x = np. array ([4, 5, 5, 7, 0]) y = np. array ([2, 4, 6, 7, 0]) #divide the values in x by the values in y n.p. divide (x,y) array([2., 1.25, 0.8333, 1., no])
Значение nan по-прежнему возвращается для последнего выходного значения, но на этот раз предупреждающее сообщение не отображается.
Дополнительные ресурсы
В следующих руководствах объясняется, как исправить другие распространенные ошибки в Python:
Как исправить ошибку KeyError в Pandas
Как исправить: ValueError: невозможно преобразовать число с плавающей запятой NaN в int.
Как исправить: ValueError: операнды не могут быть переданы с помощью фигур.