在jupyter 里面写的
# 练习!!!!-------处理数组中的nan
t = np.arange(24).reshape(4,6).astype('float')
print(t)
# 将数组中的一部分替换成nan
t[1,3:]=np.nan
print(t)
# 遍历每一列,然后判断每一列是否有nan
for i in range(t.shape[1]):
col = t[:,i] # 获取当前列数据
# 判断当前列的数据中是否含有nan ################importance
nan_col = np.count_nonzero(col != col)
if nan_col != 0: # 条件成立说明含有nan
not_nan = col[col == col] # 找出不含nan的
col[np.isnan(col)] = np.mean(not_nan) # 将nan替换成这一列的平均值
print(t)
输出结果:
[[ 0. 1. 2. 3. 4. 5.]
[ 6. 7. 8. 9. 10. 11.]
[12. 13. 14. 15. 16. 17.]
[18. 19. 20. 21. 22. 23.]]
[[ 0. 1. 2. 3. 4. 5.]
[ 6. 7. 8. nan nan nan]
[12. 13. 14. 15. 16. 17.]
[18. 19. 20. 21. 22. 23.]]
[[ 0. 1. 2. 3. 4. 5.]
[ 6. 7. 8. 13. 14. 15.]
[12. 13. 14. 15. 16. 17.]
[18. 19. 20. 21. 22. 23.]]