Подтвердить что ты не робот

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.

Может ли маскироваться массив, возможно?

4b9b3361

Ответ 1

A[A==NDV]=numpy.nan

A == NDV будет генерировать логический массив, который может использоваться как индекс для A