数据返回nan_NumPy 的 nan 如何理解?
In [59]: type(None) Out[59]: NoneType
NoneType 类型没有对外公开属性和方法:
因此,None 比较容易理解,就是一种空类型。
但是使用过 NumPy 的肯定都会接触到 nan 这种类型,它的其他写法:NaN或 NAN,查看其类型却发现是 float 类型:
In [63]: type(np.nan) Out[63]: float
这不免让人心生疑惑,nan 不是空数据,而是浮点数,那么到底等于多少?
原来这并不是NumPy特有的数值,而是IEEE754规定的特殊浮点数之一。
特殊在哪里?
这就要知道计算机是如何表示浮点数的,IEEE754 标准中规定 float 单精度浮点数,在机器中表示用 1 位表示数字的符号,用 8 位表示指数,用 23 位表示尾数,即小数部分,如下图所示:
关于浮点数表示更加详细的解释可参考下面链接,在此不详细展开:
https://blog.csdn.net/k346k346/article/details/50487127
对于单浮点数,指数部分由8位组成,所以取值范围:0到255,而指数等于0,255 这两个值,IEEE754 标准有特别的规定:
1. 当指数等于0,并且小数点后所有位全为 0,则这个数为 0
2. 当指数等于255,并且小数点后所有位全为 0,则这个数为无穷,当符号位为0时正无穷 float('inf'),当符号位为1时负无穷 float('-inf')
3. 当指数等于255,并且小数点后至少一位不为 0,规定此浮点数为 nan,表达的含义:not a number ,不是一个数
以上就是 NumPy 中 nan 的解释,弄清楚本质后,再来看几个关于它的运算。
既然 nan 不是一个数,所以拿它与任何浮点数比较,返回结果都是 False:
In [64]: np.nan 0 Out[64]: False
In [65]: np.nan == np.nan Out[65]: False
In [66]: np.nan Out[66]: False
找出 np.nan 出现的索引位置,可以使用 isnan 方法:
In [67]: a = np.array([-9,np.nan,10,np.nan])# 找出np.nan出现的索引In [68]: a.where(np.isnan(a)) # 返回结果# (array([1, 3]),)
往期精彩回顾
适合初学者入门人工智能的路线及资料下载
机器学习及深度学习笔记等资料打印
机器学习在线手册
深度学习笔记专辑
《统计学习方法》的代码复现专辑
AI基础下载
机器学习的数学基础专辑
获取本站知识星球优惠券,复制链接直接打开:
https://t.zsxq.com/qFiUFMV
本站qq群704220115。
加入微信群请扫码:
数据返回nan_NumPy 的 nan 如何理解?相关推荐
- easyui树拖拽排序java_easyui tree 拖拽功能并将数据返回后台保存至数据库
1.需要实现tree的拖拽功能,首先在定义一个tree时候需要设置 dnd : true 2.easyui 给我们提供了一个onDrop : function(target, source, poin ...
- np.corrcoef返回值含有nan
返回值含有nan 数据输入中某些变量是常数 输入数据中本身含有nan型数据 返回值含有空值 输入数据中有object 对象类型数据,转换成浮点型.
- pandas生成新的累积连乘数据列(cumprod)、pandas生成新的累积连乘cumprod数据列(数据列中包含NaN的情况)、pandas计算整个dataframe的所有数据列的累积连乘
pandas生成新的累积连乘数据列(cumprod).pandas生成新的累积连乘cumprod数据列(数据列中包含NaN的情况).pandas计算整个dataframe的所有数据列的累积连乘cump ...
- pandas生成新的累加数据列、pandas生成新的累加数据列(数据列中包含NaN的情况)、pandas计算整个dataframe的所有数据列的累加
pandas生成新的累加数据列.pandas生成新的累加数据列(数据列中包含NaN的情况).pandas计算整个dataframe的所有数据列的累加 目录
- php 插入 mysql_php插入mysql数据返回id的方法
如下所示: $dbh = mysql_connect('localhost','root','root'); mysql_select_db('pkbk'); $query = "inser ...
- SpringMVC响应的方式,无数据跳转页面,带数据跳转页面.Json数据返回
SpringMVC响应的方式,无数据跳转页面,带数据跳转页面.Json数据返回 页面跳转设定 //转发会把后端携带的request和Response发送到前端jsp,在jsp中可以直接使用其中的数据/ ...
- 解决后台json数据返回的字段需要替换的问题
有时候后台json数据返回的字段含有"id",也有可能是有时候为了减少代码的冗余,两页面之间只是数据模型个别属性的区别,所以这时候最好是用到模型属性的替换,用新的属性替换返回的js ...
- java 不存在数据返回的值是什么_Java方法
方法的概念 方法就是将功能重复的代码封装成一段独立的小程序,通过调用方法的方式以提高代码的复用性(减少代码重复) 复制代码 int year = 2020; if ( year % 4 == 0 &a ...
- oracle 导入数据时主键丢失,Oracle 插入数据 返回主键
场景:解决getJdbcTemplate往oracle数据库中插入数据返回主键出错有关问题 解决getJdbcTemplate往oracle数据库中插入数据返回主键出错问题 我们使用Spring中的J ...
最新文章
- python对象一定要删除引用吗_在Python中删除一个对象和所有对它的引用?
- [CF816B] Karen and Coffee(前缀和,思维)
- linux中如何撤销上次命令,使用git reset命令撤销上次Git提交
- Java初学者推荐的几本书
- 带你全面了解比特黄金(bitcoin gold)分叉
- idea:打包jar(原文by曲高终和寡)
- mysql可能锁的表命令_mysql 默许是表级锁一些不太常用命令
- matlab编程数字信号,MATLAB--数字信号实验.doc
- git提取和拉取区别_每天一Git之起步 - 关于版本控制
- HTML5_05之SVG扩展、地理定位、拖放
- requests session
- HoloLens的显示分辨率有多少?
- keepalived+LVS 详解(2) -- keepalived.conf解析
- python treeview控件使用详解_python绘图工具turtle库的使用详解
- 将vue,H5项目打包成app,apk安装包
- Codeblocks 17汉化
- 深度学习图像分类数据集制作
- 简单大学生静态HTML网页作品 HTML5+CSS大作业——圣诞节节日(7页) 带轮播特效
- 计算机应用专业的简历自我介绍,计算机应用个人简历模板
- 研究领域、研究课题、研究方向三者的区别
热门文章
- osgi框架和spring区别_最新100道大厂高频spring面试题附答案
- linux fastQC 操作命令,linux-ubuntu下fastQC的安裝及使用
- 处女座与cf(思维题)
- 重磅 | 20+技术大咖齐聚 阿里云数据库创新上云峰会进入一周倒计时
- 在本地机房享受专属公共云服务,详解阿里云本地化部署服务云盒
- bilibili基于 Flink 的机器学习工作流平台在 b 站的应用
- 为什么下一个十年的主战场在Serverless | 云原生Talk
- android魅族进度条,魅族基于安卓 10 的首个 Flyme 内测版已推送:16s Pro/16s 尝鲜,可强制开启 90Hz 刷新率...
- 半径为r的均匀带电球体_半径为R的均匀带电球面,总带电量为Q,设无穷远处的电势为零,则距离球心为r(r=R)的P点处的电场强度的大小和电势为...
- 基于RadeonRays的光线追踪全局光照实现方案