Я понимаю, что NaN - это «Не номер», так почему он принимается в формулы без какого-либо исключения? Я понимаю это удобство при работе с пятнистыми данными, но в математической ситуации почему это не считается нулевым? Вместо этого это похоже на черную дыру, которая превращает все остальное в NaN.Почему numpy NaN генерирует TypeError при использовании в формуле?
Пример:
x = 5
y = np.NaN
z = x + y
print(z)
nan
Так как стандарты с плавающей точкой определяют NaN. И все, что сделано с не числом, также не является числом. (Передача по модулю по сравнению с несигнальными NaNs, но большинство программ фактически не поддерживает сигнальные NaN) – Max
http://stackoverflow.com/questions/41486495/why-is-nan-considered-smaller-than-np-inf-in -numpy и ссылки – hpaulj
Весь смысл NaNs заключается в том, что они постоянны - вам нужно только проверить окончательный результат любого вычисления, чтобы увидеть, не произошло ли что-то по пути, а не проверять после каждого шага. – jasonharper