将NaN值从一个numpy数组传输到另一个numpy数组

时间:2017-03-16 16:07:27

标签: python python-2.7 numpy

我使用地理数据并使用gdal导入到python中的大型栅格文件。要处理它们,我将它们转换为numpy数组。

我创建了一个空数组,它在循环中填充数据。但是,我需要NaN值与我导入的rater文件中的位置相同。

data = ds.GetRasterBand(1).GetNoDataValue()
data = np.array(ds.GetRasterBand(1).ReadAsArray())
data[data==-9999] = np.nan # set all -9999 as no data value

cols, rows = data.shape
dataOut = np.zeros([ds.RasterYSize, ds.RasterXSize]) # create empty array with zeros
for c in range(cols):
    for r in range(rows):
        dataOut[c][r] = np.nan if isinstance(data[c][r], np.ndarray) else dataOut[c][r]

所以我想将我的数据数组中的NaN值传输到我的dataOut数组。这些解决方案都没有提出here对我来说...... dataOut数组仍然只保留零。

1 个答案:

答案 0 :(得分:0)

自己想出来...... np.isnan就是解决方案:

for c in range(cols):
    for r in range(rows):
        dataOut[c][r] = np.nan if np.isnan(data[c][r]) else dataOut[c][r]