Numpy - Заменить число на NaN

Я ищу замену числа на NaN в numpy и ищу функцию вроде 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.

Может быть, это замаскированный массив. ?

31
задан MERose 3 May 2015 в 22:05
поделиться