[Numpy] Numpy对于NaN值的判断

本文介绍了numpy.nan的特性,包括其数据类型为float,与任何数运算都返回nan,以及如何正确判断nan值。强调了np.isnan()、is表达式和in表达式在检测nan中的作用,并对比了None、NaN和空字符串的区别。还提到了Pandas中pd.isnull()检测nan和None的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

美图欣赏2022/06/23

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

import numpy as np
type(np.nan) # float

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

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语句判断

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表达式进行判断

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() 

import numpy as np
import pandas as pd
pd.isnull(np.nan)  # True
pd.isna(np.nan)  # True

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

# None是Python的特殊类型
# NoneType对象,它只有一个值None
type(None) # NoneType
None == None # True
None == np.nan # False

# 空字符串''
type('') # str

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

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
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) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值