Mam trochę kodu, który próbuje znaleźć zawartość tablicy w indeksach określonych przez inną, które mogą określać indeksy spoza zakresu wcześniejszej tablicy.Indeksowanie za pomocą maskowanych tablic w numpy
input = np.arange(0, 5)
indices = np.array([0, 1, 2, 99])
Co chcę zrobić to: wejście druku [indeksy] i uzyskać [0 1 2]
Ale to plony wyjątek (zgodnie z oczekiwaniami):
IndexError: index 99 out of bounds 0<=index<5
Pomyślałem, że mogę użyć ukrytych tablic do ukrywania indeksów poza polem:
indices = np.ma.masked_greater_equal(indices, 5)
Ale nadal:
>print input[indices]
IndexError: index 99 out of bounds 0<=index<5
Chociaż:
>np.max(indices)
2
Więc mam do wypełnienia pierwszej zamaskowanego tablicę, która jest irytujące, ponieważ nie wiem, co wartość wypełnienia można używać nie wybrano żadnych wskaźników dla tych, które są poza zakresem:
wejście drukowania [np.ma.filled (indeksy 0)]
Moje pytanie brzmi: w jaki sposób można efektywnie używać numpy do wybierania wskaźników bezpiecznie z tablicy bez przekraczania granic tablicy wejściowej?
D'oh to działa. Nadal ciekawi mnie, dlaczego nie możemy właściwie używać maskowanych tablic do indeksowania, ale przypuszczam, że to naprawdę nie ma znaczenia. – Widjet