Czekam na zastąpienie liczby przez NaN w numpy i szukam funkcji jak numpy.nan_to_num, z wyjątkiem odwrotnej.Numpy - Zamień numer na NaN
Liczba prawdopodobnie zmieni się, ponieważ przetwarzane są różne tablice, ponieważ każda może mieć jednoznacznie zdefiniować wartość NoDataValue. Widzę ludzi używających słowniki, ale tablice są duże i wypełnione zarówno dodatnimi, jak i ujemnymi zmiennymi. Podejrzewam, że nie jest wydajne ładowanie tych wszystkich w cokolwiek, aby tworzyć klucze.
Próbowałem użyć następujących i numpy wymagających, żebym użył dowolnej() lub wszystkich(). Zdaję sobie sprawę, że muszę powtarzać element mądry, ale mam nadzieję, że wbudowana funkcja może to osiągnąć.
def replaceNoData(scanBlock, NDV):
for n, i in enumerate(array):
if i == NDV:
scanBlock[n] = numpy.nan
NDV to brak wartości danych GDAL, a tablica to tablica numpy.
Czy jest to tablica z maską, którą można wykonać?
nie jestem pewien, czy rozumiem, co jest złego w roztworze Ci zapewnić. Czy to nie działa poprawnie? –
@Chris Gregg To rozwiązanie wymaga trochę wcięcia, nie musi zwracać tablicy (ponieważ jest na miejscu), powinno raczej unikać używania 'tablica' jako zmiennej, aby uniknąć pomyłki z np.array, ale co najważniejsze, będzie strasznie powolny w porównaniu do typowego numpy indeksowania i nadawania. – Paul
@Paul Moją obawą była szybkość, bardzo dziękuję za odpowiedź poniżej. Użyłem tych zmiennych po prostu, aby uczynić kod jaśniejszym, I, aby uniknąć używania również tablicy. – Jzl5325