表示未定义或不可表示的值。
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. 11.] [12. 13. 14. 15. 16. 17.] [nan 19. nan 21. 22. 23.]] 3
nan和任何一个数进行运算结果都为nan
print(np.sum(t1, axis=0)) #axis是轴的参数,0表示y——列 1表示x——行 [[ 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 nan nan 48. 52. 56.]
np.isnan——判断出现nan的位置
print(np.isnan(t1)) [[False False False False False False] [False True False False False False] [False False False False False False] [ True False True False False False]]



