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.

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

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

随机推荐