Numpy对于NaN值的判断方法

转自:微点阅读   https://www.weidianyuedu.com  

本文主要介绍了Numpy对于NaN值的判断方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

numpy.nan的数据类型是float类型

1

2

import numpy as np

type(np.nan) # float

任何数字和numpy.nan进行计算,返回的结果都是nan

1

2

3

4

5

import numpy as np

print(np.nan + 1) # nan

print(np.nan - 1) # nan

print(np.nan * 1) # nan

print(np.nan / 1) # nan

对空值NaN的判断不能直接使用==表达式,bool表达式,以及不可直接使用if语句判断

1

2

3

4

5

6

7

8

import numpy as np

np.nan == np.nan # False

  

bool(np.nan) # True

  

# 输出结果:na is not null

if np.nan:

    print('np.nan is not null')

需要使用Numpy自带的方法np.isnan(),is表达式,in表达式进行判断

1

2

3

4

import numpy as np

np.nan is np.nan # True

np.isnan(np.nan) # True

np.nan in [np.nan] # True

提示

如果使用Pandas来判断numpy.nan,可使用pd.isnull(),pd.isna() 

1

2

3

4

import numpy as np

import pandas as pd

pd.isnull(np.nan)  # True

pd.isna(np.nan)  # True

注意:None、NaN、''空字符串的区别

1

2

3

4

5

6

7

8

# None是Python的特殊类型

# NoneType对象,它只有一个值None

type(None) # NoneType

None == None # True

None == np.nan # False

  

# 空字符串''

type('') # str

Pandas中的pd.isnull不仅可以检测np.nan也可以检测None,但不可以检测字符串,比如'''nan''None' 

1

2

3

4

5

6

7

import pandas as pd

import numpy as np

pd.isnull(np.nan) # True

pd.isnull(None) # True

pd.isnull('') # False

pd.isnull('np.nan') # False

pd.isnull('None') # False

1

2

3

4

5

6

7

8

9

10

11

12

13

import pandas as pd

import numpy as np

List = ['nan', '', 'None', None, np.nan]

for i in List:

    if i == '' or pd.isnull(i) or pd.isnull(float('nan')) or i == 'None':

        print(i)

  

# 上述输出结果:

# nan

# ''

# None

# None

# nan

List(5 elements) 

 到此这篇关于Numpy对于NaN值的判断方法的文章就介绍到这了,希望可以帮到你