图像数组运算相关问题(nan/inf)

新年第一更!祝愿新的一年技术长足进步哈!

最近在用sklearn的回归分析模型拟合预测遥感图像,遇到了一些问题,好在一一解决,现在总结一下。

1.首先输入sklearn的数据必须reshape(-1,1),只有转换成这种格式才能进行输入。对于多因子的数据,要concatenate((a,b),axis=1),按列进行叠加。

2.  ValueError: Input contains NaN, infinity or a value too large for dtype('float64')
这个报错意思是输入的数据里有Nan/Inf,对于nan,可以用data==data False或者data[np.isnan(data)] = 0排除;

而inf是无限大,通常由于分母为0而生成,用data[np.isinf(data)] = 0来消除。图像运算里经常会出现这种情况,注意是否有分母为0哦!

3.模型中数据进行了标准化,那么输入图像时候也要标准化。

4.最后学到一个sklearn替换nan的方法。

imp = Imputer(missing_values=’NaN’, strategy=’mean’, axis=0, verbose=0, copy=True)

data = imp.fit_transform(data)

2020/1/1

猜你喜欢

转载自www.cnblogs.com/ljwgis/p/12131011.html