python将nan, inf转为特定的数字
程序员文章站
2024-03-25 19:29:58
...
在有些机器学习和神经网络模型训练过程中,可能会遇到原始数据集经过预处理后,数据中包含Nan、Inf等占位符,导致模型训练损失函数计算出现偏差,最终导致模型准确率低的问题。所以需要在预处理阶段,将该部分数据进行处理操作,常见操作为数据标准化处理后用0代替, 另一种方法是利用插值方法进行数据填充。本部分只讲解0填充方法。
代码:
import numpy as np
a = np.array([[np.nan, np.nan, 1, 2], [np.inf, np.inf, 3, 4], [1, 1, 1, 1], [2, 2, 2, 2]])
print a
where_are_nan = np.isnan(a)
where_are_inf = np.isinf(a)
a[where_are_nan] = 0
a[where_are_inf] = 0
print a
print np.mean(a)
结果:
[[ nan nan 1. 2.]
[ inf inf 3. 4.]
[ 1. 1. 1. 1.]
[ 2. 2. 2. 2.]]
[[ 0. 0. 1. 2.]
[ 0. 0. 3. 4.]
[ 1. 1. 1. 1.]
[ 2. 2. 2. 2.]]
1.375
上一篇: 浅谈restful规范
下一篇: netdata 安装错误解决