NumPy Nan в результатах, не имея Nan в значениях - PullRequest
0 голосов
/ 31 мая 2018

Я получаю np.nan значений в моем массиве при выполнении вычисления NumPy.val.isna().values.any() не дает np.nan, но после вычисления массив содержит np.nan.

Пример:

delta_h = np.abs(start_height - end_height)
J_e = np.array([d / l if not np.isnan(d / l) else 0.002 for
                d, l in zip(delta_h, length)])
J_e = np.abs(J_e)
DN = np.abs(DN)

print("DN {}".format(DN.isna().values.any()))
print("J_E {}".format(np.isnan(J_e).any()))
print("J_E {}".format(J_e.isna().values.any()))

C = (np.pi * np.power(DN, 2)) / 4
     log = ((2.51 * v) / (DN * np.sqrt(2 * g * DN * J_e))) + (k / (3.71 * DN))
rot = 2 * g * DN * J_e

print("log {}".format(np.isnan(log).any()))
print("rot {}".format(np.isnan(rot).any()))

log10 = np.log10(log)
sqrt = np.sqrt(rot)

print("log10 {}".format(np.isnan(log10).any()))
print("sqrt {}".format(np.isnan(sqrt).any()))

t = -2 * log10

print("-2 * log10 {}".format(np.isnan(t).any()))

tt = -2 * sqrt

print("-2 * sqrt {}".format(np.isnan(tt).any()))

ttt = log10 * sqrt

print("ttt {}".format(np.isnan(ttt).any()))

#        for i, x in enumerate(ttt):
#            if np.isnan(x):
#                print(sqrt[i], log10[i])

N = -2 * np.multiply(log10, sqrt)

print(N[N==np.nan])
print("C {}".format(C.isna().values.any()))
print("N {}".format(N.isna().values.any()))

V = C * N

print("V {}".format(np.isnan(V).any()))

Дает: DN False J_E False log False rot False log10 False sqrt False -2* log10 False -2 * sqrt False ttt True Series ([], Имя: DN, dtype: float64) C False N True V True

Почему -2 * np.multiply(log10, sqrt) вдруг с np.nans в массиве результатов?Также -2 * log10 * sqrt приводит к np.nan в массиве.

Данные поступают из geopandas.DataFrame()

1 Ответ

0 голосов
/ 31 мая 2018

Произошло деление на ноль, которое не было упомянуто компилятором.Странно, что шаги между не показали сбой.

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