Я получаю 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()