让人头疼的 nan 类型
之前研究过判断 nan 类型的方法: http://support.i-search.com.cn/article/1542880498568
今天在处理数据的时候碰到了一些问题,因此再次研究一下 nan 类型。
首先初始化一个集合,然后加入 5 个 nan 元素:
然后我们打印一下这个集合看看,由于集合的去重机制,正常应该是只有一个 nan:
居然有五个!难道里面每个都互不相同吗?
我们再进一步判断:
nan 这个东西在内存中的地址也是像量子力学那样飘忽不定的:
询问度娘后,发现 nan 跟任何值都是不等的,也包括它自身。
另外,python 中也可以这么定义一个 nan 类型:
b = float('nan')
或者
from decimal import Decimal
b = Decimal('nan')
这里变量 a 和变量 b 虽然都叫 nan,但类型不一样
总结一下:NaN, Not a Number, 非数. 它即不是无穷大, 也不是无穷小, 而是 python/numpy/… 觉得无法计算时返回的一个符号
import numpy as np
import pandas as pd
np.isnan()
pd.isna()
这两个函数均可以用来判断是不是 nan 这个值,是的话返还 True, 否则返还 False
高手、这是高手 👍+1👍
👍🏻专研精神值得学习