47

我希望在 numpy 中用 NaN 替换一个数字,并且正在寻找一个类似 numpy.nan_to_num 的函数,但相反。

随着处理不同的数组,该数字可能会发生变化,因为每个数组都可以具有唯一定义的 NoDataValue。我见过人们使用字典,但是数组很大并且充满了正负浮点数。我怀疑尝试将所有这些加载到任何东西中以创建密钥的效率不高。

我尝试使用以下和 numpy 要求我使用 any() 或 all()。我意识到我需要明智地迭代元素,但希望内置函数可以实现这一点。

def replaceNoData(scanBlock, NDV):
    for n, i in enumerate(array):
        if i == NDV:
            scanBlock[n] = numpy.nan

NDV 是 GDAL 的无数据值,数组是一个 numpy 数组。

蒙面数组可能是要走的路吗?

4

1 回答 1

68
A[A==NDV]=numpy.nan

A==NDV 将生成一个布尔数组,可用作 A 的索引

于 2011-07-15T01:17:28.987 回答