How can I check for NaN values?

后端 未结 17 2227
盖世英雄少女心
盖世英雄少女心 2020-11-22 05:02

float(\'nan\') results in Nan (not a number). But how do I check for it? Should be very easy, but I cannot find it.

17条回答
  •  闹比i
    闹比i (楼主)
    2020-11-22 05:46

    It seems that checking if it's equal to itself

    x!=x
    

    is the fastest.

    import pandas as pd 
    import numpy as np 
    import math 
    
    x = float('nan')
    
    %timeit x!=x                                                                                                                                                                                                                        
    44.8 ns ± 0.152 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
    
    %timeit math.isnan(x)                                                                                                                                                                                                               
    94.2 ns ± 0.955 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
    
    %timeit pd.isna(x) 
    281 ns ± 5.48 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
    
    %timeit np.isnan(x)                                                                                                                                                                                                                 
    1.38 µs ± 15.7 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
    
    

提交回复
热议问题