RuntimeWarning: недопустимое значение при делении с np.where () - PullRequest
0 голосов
/ 19 января 2020

Я не понимаю, почему у меня все еще есть эта ошибка:

"RuntimeWarning: деление на ноль, встречающееся в true_divide"

Это должно быть предотвращено np.where что я применяю. Обратите внимание, что деление на ноль правильно обрабатывается, поскольку я получаю np.nan, а не -inf:

Конечно, я могу искусственно игнорировать предупреждения, но я хотел бы понять ...

import pandas as pd
import numpy as np
series_raw = pd.Series([0, float('nan'), 1,4,6,-1], [0,1,2,3,4,5])
print(series_raw)

# Ignore the divide by zero errors
# np.seterr(divide='ignore', invalid='ignore')

x = series_raw.values

values = np.where(np.logical_or(x == 0, np.isnan(x)), np.nan, 10 /x)

# Re-activate the divide by zero errors
# np.seterr(divide='warn', invalid='warn')

series_modified = pd.Series(values, series_raw.index)
print(series_modified)

Выходы:

0    0.0
1    NaN
2    1.0
3    4.0
4    6.0
5   -1.0

dtype: float64
0          NaN
1          NaN
2    10.000000
3     2.500000
4     1.666667
5   -10.000000
dtype: float64

RuntimeWarning: деление на ноль, встречающееся в true_divide

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...