什么是nan?——not a number 数据类型中的一种.
表示未定义或不可表示的值。
a = np.nan
type(a)
float #nan是一个浮点型数据类型
什么时候出现nan?
当读取本地的文件为float的时候出现缺失;当进行了一个不合理运算时候(比如无穷大inf减去无穷大)
怎么给numpy赋值为nan?
t = np.arange(24).reshape(4, 6)
t1 = t.astype(float) #先转化为float类型,在进行赋值
t1[[3, 3, 1], [2, 0, 1]] = np.nan
t1 = [[ 0. 1. 2. 3. 4. 5.]
[ 6. nan 8. 9. 10. 11.]
[12. 13. 14. 15. 16. 17.]
[nan 19. nan 21. 22. 23.]]
注意点:
两个nan是不相等的
print(np.nan == np.nan)
False #既然都不能确定这两个数据类型到底是什么,所以就不能判断两个相等
利用这一点来统计nan的个数
print(t1)
#count_zero
print(np.count_nonzero(t1 != t1))
[[ 0. 1. 2. 3. 4. 5.]
[ 6. nan 8. 9. 10.