一、numpy中的nan和inf解释
1.nan和inf的解释
nan(NAN,Nan),是英文not a number的缩写,表示不是一个数字
当读取本地数据的时候,如果数据有缺失,就会出现nan数据;
另外,当在数据进行计算时,出现了一个不合理或不存在无法判断的数字的时候,也会被认定为nan。
inf(-inf,inf),是英文infinity的缩写,inf表示正无穷,-inf表示负无穷
当一个数字除以0,在numpy中会出现inf或者-inf,但是在python的算法中会报错。
强调一下,nan和inf默认的type都是float
nan的几个注意点
①nan是不相等的,nan == nan结果是false
②nan和任何数计算结果都是nan
既然nan是不等于nan的,那当数组中存在这类数据,如何统计nan的个数呢?
举个简单的例子:
方法一:
a = np.random.randn(2,3)
a[1,1] = np.nan
print(a == a)
>>>[[ True True True]
[ True False True]]
#可以看到,false的位置即为nan的位置,那么直接统计false的个数就可以了
print(np.count_nonzero(a != a)) #count_nonzero方法统计的是不为0的数据的个数,这里即为统计的true
>>>1
#这样就统计到了nan的个数为1
方法二:
使用isnan的方法
a = np.random.randn(2,3)
a[1,1] = np.nan
print(np.isnan(a))
>>>[[False False False]
[False True False]]
可以得到类似的结果,然后再使用np.count_nonzero方法统计个数
print(np.count_nonzero(np.isnan(a)))
>>>1
同样可以得出结果
二、numpy中的常用统计方法
numpy中的常用的统计函数
可以通过参数传轴来确定计算哪个方向的结果。