Numpy对于NaN值的判断方法

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)

到此这篇关于Numpy对于NaN值的判断方法的文章就介绍到这了,更多相关Numpy NaN值内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 如何将numpy二维数组中的np.nan值替换为指定的值

    基础知识: (1)np.nan表示该值不是一个数,比如数据中收入.年龄的缺失值:np.inf表示无穷大 (2)np.nan == np.nan 的结果为False (3)nan与任何数的操作结果均为nan,例如sum((np.nan,4)) 的结果为nan (4)一个ndarray数组t1,可以用np.isnan(t1) 定位到nan值的位置,再用t1[np.isnan(t1)] = 指定值 将nan替换为指定值 (5)np.nan_to_num(t1),可以将t1中的nan替换为0 (6)t1

  • Python Numpy:找到list中的np.nan值方法

    这个问题源于在训练机器学习的一个模型时,使用训练数据时提示prepare的数据中存在np.nan 报错信息如下: ValueError: np.nan is an invalid document, expected byte or unicode string. 刚开始不知道为什么会有这个,后来发现是list中存在nan值 下面是找到nan值的方法: 简单找到: import numpy as np x = np.array([2,3,np.nan,5, np.nan,5,2,3]) for

  • 使用numpy对数组求平均时如何忽略nan值

    目录 numpy对数组求平均时忽略nan值 使用np.mean()的效果 使用np.nanmean()的效果 numpy含nan值进行归一化操作 方法一 方法二 numpy对数组求平均时忽略nan值 在对numpy数组求平均np.mean()或者求数组中最大最小值np.max()/np.min()时,如果数组中有nan,此时求得的结果为:nan,那么该如何忽略其中的nan呢? 此时应该用另一个方法 np.nanmean(),np.nanmax(),np.nanmin() 使用np.mean()的

  • Numpy对于NaN值的判断方法

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

  • 无感NullPointerException的值相等判断方法

    目录 方法一: 方法二(更优雅): 场景:当我们需要去判断一个 入参/查库 返回的开关变量(通常是个Integer类型的)时,常常会写如下的if-else判断语句.但又会为在生产环境看到的「NullPointerException」感到困扰.遇到过这样问题的小伙伴,可以继续向下看: public static void main(String[] args) {    Integer a = 1;    Integer b = null;    if(b!=1){       System.ou

  • 对pandas数据判断是否为NaN值的方法详解

    实际项目中有这样的需求,将某一列的值,映射成类别型的数据,这个时候,需要我们将范围等频切分,或者等距切分. 具体的做法可以先看某一些特征的具体分布情况,然后我们选择合适的阈值进行分割. def age_map(x): if x < 26: return 0 elif x >=26 and x <= 35: return 1 elif x > 35 and x <= 45: return 2 elif pd.isnull(x): #判断是否为NaN值,== 和in 都无法判断

  • Python判断Nan值的五种方式小结

    目录 Python判断Nan值方式小结 numpy判断 Math判断 Pandas判断 判断是否等于自身 Nan不属于任何取值区间 python的nan处理 定义nan的方法 常见的计算结果为nan的情况 Python判断Nan值方式小结 numpy判断 import numpy as np nan = float('nan') print(np.isnan(nan)) True Math判断 import math nan = float('nan') print(math.isnan(nan

  • python设置值及NaN值处理方法

    如下所示: python 设置值 import pandas as pd import numpy as np dates = pd.date_range('20180101',periods=6) df = pd.DataFrame(np.arange(24).reshape(6,4),index=dates,columns=['A','B','C','D']) print(df) A B C D 2018-01-01 0 1 2 3 2018-01-02 4 5 6 7 2018-01-03

  • JavaScript判断两个值相等的方法详解

    目录 前言 非严格相等 严格相等 同值零 同值 总结 前言 在 JavaScript 中如何判断两个值相等,这个问题看起来非常简单,但并非如此,在 JavaScript 中存在 4 种不同的相等逻辑,如果你不知道他们的区别,或者认为判断相等非常简单,那么本文非常适合你阅读. ECMAScript 是 JavaScript 的语言规范,在ECMAScript 规范中存在四种相等算法,如下图所示: 上图中四种算法对应的中文名字如下,大部分前端应该熟悉严格相等和非严格相等,但对于同值零和同值却不熟悉,

  • Pandas替换NaN值的方法实现

    目录 问题 方法 替换 NaN 值的步骤 参考 替换Pandas DataFram中的 NaN 值 问题 NaN 代表 Not A Number,是表示数据中缺失值的常用方法之一.它是一个特殊的浮点值,不能转换为 float 以外的任何其他类型.NaN 值是数据分析中的主要问题之一.为了得到理想的结果,对 NaN 进行处理是非常必要的. 方法 用零替换Pandas DataFram中的 NaN 值的方法: fillna(): 用于使用指定的方法填充 NA/NaN 值. replace(): da

随机推荐