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))
True
Pandas判断
import pandas as pd nan = float('nan') print(pd.isna(nan))
True
判断是否等于自身
利用Nan值不等于其自身判断
def is_nan(nan): return nan != nan nan = float('nan') print(is_nan(nan))
True
Nan不属于任何取值区间
# 只能输入数值型参数 def is_nan(nan): return not float('-inf') < nan < float('inf') nan = float('nan') print(is_nan(nan))
True
python的nan处理
python中的nan,即Not A Number。
定义nan的方法
a = float(‘nan') or from decimal import Decimal a = Decimal(‘nan')
常见的计算结果为nan的情况
a = -float("inf") b = -float("inf") c = float("inf") d = float("inf") 1.a-b=nan 2. c-d=nan 3. 0*a=nan 4. 0*c=nan
今天在实现算法时遇到nan,出现这种情况最后发现是由于程序计算过程有”3“的情况导致计算结果不准确。处理方法加if判断,遇到3的情况使其结果为0.
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
python2与python3中关于对NaN类型数据的判断和转换方法
今天在对一堆新数据进行数据清洗的时候,遇到了一个这样的问题: ValueError: cannot convert float NaN to integer 一开始是这样的,我用的jupyter是python35的,使用DataFrame读入了数据,其中有一列是year,默认读入时是将year这一列转换为了float,所以就有了这样的现象: 年份都是float类型了,看得我强迫症都犯了.于是通过这样的代码来进行强转,于是就报了上面的错误了. df.year = [int(y) for y in
-
在Python中给Nan值更改为0的方法
如下所示: import pandas as pd df1 = pd.DataFrame([{'col1':'a', 'col2':1}, {'col1':'b', 'col2':2}]) df2 = pd.DataFrame([{'col1':'a', 'col3':11}, {'col1':'c', 'col3':33}]) data = pd.merge(left=df1, right=df2, how='left', left_on='col1', right_on='col1') pr
-
对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中Inf与Nan的判断问题详解
大家都知道 在Python 中可以用如下方式表示正负无穷: float("inf") # 正无穷 float("-inf") # 负无穷 利用 inf(infinite) 乘以 0 会得到 not-a-number(NaN) .如果一个数超出 infinite,那就是一个 NaN(not a number)数.在 NaN 数中,它的 exponent 部分为可表达的最大值,即 FF(单精度).7FF(双精度)和 7FFF(扩展双精度). NaN 数与 infinit
-
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脚本后台运行的五种方式
目录 方法一:脚本后加& 方法二:使用nohup在后台执行命令 方法三:使用screen执行命令 方法四:使用at将一个命令作为批处理执行 方法五:使用watch连续地执行一个命令 最近写了监控服务的脚本,需要在后台24小时运行. 环境:linux.脚本python.shell脚本 方法一:脚本后加& 加了&以后可以使脚本在后台运行,这样的话你就可以继续工作了.但是有一个问题就是你关闭终端连接后,脚本会停止运行: 如: [root@192 ~]# python updatetest
-
对Python _取log的几种方式小结
1. 使用.logfile 方法 #!/usr/bin/env python import pexpect import sys host="146.11.85.xxx" user="inteuser" password="xxxx" command="ls -l" child = pexpect.spawn('ssh -l %s %s %s'%(user, host, command)) child.expect('pass
-
Python获取对象属性的几种方式小结
本文将简单介绍四种获取对象的方法. 假如有以下的类: class Person(object): def __init__(self, name, age): self.name = name self.age = age def __str__(self): return 'name=%s, age=%s' % (self.name, self.age) 方法一:使用属性运算符 print(xmr.name) 方法二:通过属性字典__dict__ print(xmr.__dict__['nam
-
JS实现斐波那契数列的五种方式(小结)
下面是五种实现斐波那契数列的方法 循环 function fibonacci(n){ var res1 = 1; var res2 = 1; var sum = res2; for(var i = 1;i < n;i ++){ sum = res1 + res2; res1 = res2; res2 = sum; } return sum; } 普通递归 function fibonacci (n) { if ( n <= 1 ) {return 1}; return fibonacci(n
-
Python处理mat文件的三种方式小结
目录 处理mat文件的三种方式 scipy h5py mat73 mat4py python操作.mat文件 python读取.mat格式 mat转图片 处理mat文件的三种方式 读书的时候,处理数据都是采用matlab,但毕业后当了程序员,matlab从此在自己的电脑上消失了(安装包太大,还要license,启动也好慢,不符合程序员的需求). 但是最近公司仿真的数据是以matlab的.mat格式存储的,需要读取出来处理,那就找找python相关的库吧,没有python干不了的活!!! mat文
-
Zuul 实现网关转发的五种方式小结
上图为一个微服务框架的简单示例,当有一个HTTP请求发送到服务器的时候,其实是先经过了Nginx的,再经过了网关,这里的网关就担任了拦截过滤的作用,既然拦截和过滤了,肯定就涉及到了请求的转发 转发我大致例了以下五种转发方式: 方式一:path+serviceId 方式 在spring_cloud的配置文件application.yml 文件中加入以下配置: server: port: 8888 #服务端口 spring: application: name: app-zuul-gateway #
-
golang给函数参数设置默认值的几种方式小结(函数参数默认值
目录 前言 强制改变 使用可变参数语法糖 利用结构体的config 转换函数的全部参数 补充知识:Golang中设置函数默认参数的优雅实现 总结 前言 这个问题相当麻烦,根据golang-nuts/google groups中的这篇文章,golang现在与将来都不会支持参数默认值.Go始终在使得自己变得尽可能的简单,而增加这种额外的支持会使parser变得更复杂. 设置参数值的好处: 可以缺省部分参数. 可以提供一种默认的,行之有效的配置. 但是参考资料中提到了几种实现默认值的方法: 强制改变
-
springboot配置文件中使用${}注入值的两种方式小结
目录 配置文件中使用${}注入值方式 在springboot中使用System.setProperty设置参数 配置文件自扫描 spring配置文件${}的用法 话不多说直接看就完事了 配置文件中使用${}注入值方式 在springboot中使用System.setProperty设置参数 user: user-name: ${username} age: ${age} 配置文件是这种写法,我们可以用System.setProperty来设置参数,System.setProperty相当
-
Spring RedisTemplate 批量获取值的2种方式小结
目录 Spring RedisTemplate 批量获取值 1.利用mGet 2.利用PipeLine Java对Redis的批量操作RedisTemplate 1.背景 2.操作 3.说明 Spring RedisTemplate 批量获取值 1.利用mGet List<String> keys = new ArrayList<>(); //初始keys List<YourObject> list = this.redisTemplate.opsForValue().
随机推荐
- iframe背景透明的设置方法
- 国内学院派专家对DB2 9新产品赞不绝口
- jQuery EasyUI之验证框validatebox实例详解
- javascript实现类似java中getClass()得到对象类名的方法
- SQL Server中调用C#类中的方法实例(使用.NET程序集)
- php自定义函数实现二维数组按指定key排序的方法
- php下封装较好的数字分页方法
- PHP MySQL应用中使用XOR运算加密算法分享
- dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
- 正则表达式:过滤<font>和</font>
- Android ormlite更改数据库默认位置
- MySQL的字符串函数使用说明
- nodejs利用ajax实现网页无刷新上传图片实例代码
- node.js集成百度UE编辑器
- 如何实时获知多少人在线?
- Lua中类的实现原理探讨(Lua中实现类的方法)
- SQL Server中避免触发镜像SUSPEND的N种方法
- js 图片放大效果 修正版
- Java互斥锁简单实例
- ASP.NET XmlHttp跨域访问实现代码