Numpy - 用NaN替换数字

时间:2011-07-15 01:08:59

标签: python arrays numpy nan gdal

我想在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数组。

蒙面数组是否可以走?

1 个答案:

答案 0 :(得分:41)

A[A==NDV]=numpy.nan
<= A == NDV将产生一个布尔数组,可用作A

的索引