Python 中表示空数据使用 None,它是 NoneType 类型,如下所示:
成都创新互联主营织金网站建设的网络公司,主营网站建设方案,成都APP应用开发,织金h5小程序制作搭建,织金网站营销推广欢迎织金等地区企业咨询
- 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 位表示尾数,即小数部分,如下图所示:
对于单浮点数,指数部分由8位组成,所以取值范围:0到255,而指数等于0,255 这两个值,IEEE754 标准有特别的规定:
以上就是 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 < np.inf
- 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]),)
文章标题:NumPy的nan如何理解?
转载源于:http://www.shufengxianlan.com/qtweb/news41/22291.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联