代码示例:
import numpy as np
# 创建一个nan
a = np.nan
print(a,type(a)) #打印:nan <class 'float'> *****
print(np.isnan(a)) #打印:True
print("-"*40)
# 注意:float类型的数据才能赋值nan
b = np.arange(24,dtype=float).reshape(4,6)
print(b)
'''
打印:
[[ 0. 1. 2. 3. 4. 5.]
[ 6. 7. 8. 9. 10. 11.]
[12. 13. 14. 15. 16. 17.]
[18. 19. 20. 21. 22. 23.]]
'''
# 将4行5列的数改成nan
b[3,4] = np.nan
print(b)
# 注意: nan和任何数计算都为nan *****
print(np.sum(b,axis=0)) #打印:[36. 40. 44. 48. nan 56.]
print(np.isnan(b))
'''
打印:
[[False False False False False False]
[False False False False False False]
[False False False False False False]
[False False False False True False]]
'''
# 将nan替换掉
b[np.isnan(b)] = 0
print(b)
'''
打印:
[[ 0. 1. 2. 3. 4. 5.]
[ 6. 7. 8. 9. 10. 11.]
[12. 13. 14. 15. 16. 17.]
[18. 19. 20. 21. 0. 23.]]
'''
# np.nan != np.nan 结果 是TRUE
print(np.nan != np.nan) #打印True
print("-"*40)
c = np.arange(24,dtype=float).reshape(4,6)
c[(2,3),(2,4)] = np.nan
print(c != c)
'''
打印:
[[False False False False False False]
[False False False False False False]
[False False True False False False]
[False False False False True False]]
'''
# 可以使用np.count_nonzero() 来判断非零的个数
print(np.count_nonzero(c)) #打印23
# False=0 True=1
print(np.count_nonzero(c != c)) #打印2
d = np.arange(24).reshape(4,6).astype('float')
# 将数组中的一部分替换nan
d[1,3:] = np.nan
print(d)
'''
打印:
[[ 0. 1. 2. 3. 4. 5.]
[ 6. 7. 8. nan nan nan]
[12. 13. 14. 15. 16. 17.]
[18. 19. 20. 21. 22. 23.]]
'''