1. 程式人生 > >python--NaN型別判斷

python--NaN型別判斷

  • 昨天遇到了nan型別,不知道該怎麼判斷,在網上搜了一下,大致是這樣的,
  • NaN,Not a Number,非數,它即不是無窮大, 也不是無窮小,無窮大減無窮大會導致NaN,無窮大乘以0或無窮小或除以無窮大會導致NaN,有NaN參與的運算, 其結果也一定是NaN,NaN != NaN
import numpy as np
#無窮大減無窮大會導致NaN
a = np.infty
print(a - a)
nan
print(a * a, a* a - a)
inf nan
#無窮大乘以0或無窮小或除以無窮大會導致NaN
print(a * 0)
nan
print(a * 1/ a)
nan
print(a / a)
nan
print(a / 1)
inf
print(a / 1)
inf
#有NaN參與的運算, 其結果也一定是NaN
b = np.nan
print(b + 1)
nan
print(b - b)
nan
#NaN != NaN
print(b == b)
False
  • 但是你列印他的型別顯示為浮點數Float,不過沒辦法判斷他的型別,不過可以通過math函式或者numpy 函式裡的 isnan() 來判斷
import math
a=float("nan")
if math.isnan(a):
    print("是nan")
else:
    print("不是nan")

是nan

文章部分內容來自https://www.cnblogs.com/dengdan890730/p/6239056.html

numpy詳細介紹https://blog.csdn.net/qq351469076/article/details/78817378