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

2024-09-27 09:22:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我处理地理数据,并使用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数组。这些解决方案中没有一个对我有用……dataOut数组仍然只包含零。你知道吗


Tags: 文件数据fordatanpzerosds数组
1条回答
网友
1楼 · 发布于 2024-09-27 09:22:37

我自己想出来的…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]

相关问题 更多 >

    热门问题