Indeksowanie Numpy

Indeksowanie Numpy
„Numpy to pakiet w Pythonie używany do obliczeń na tablicach N-wymiarowych. Osie to to, co Numpy nazywa wymiarami, a operacja jest tym, czym jest indeksowanie. Aby pobrać określony zbiór wartości z tablicy Numpy, użyj funkcji indeksowania. Wartość i umieszczenie wartości w tablicy to różne rzeczy; Dlatego musimy pamiętać, że indeks w ndarray zaczyna się od zera. W tym artykule zbadamy indeksowanie Numpy i wyjaśnimy, jak pobierać wartości z tablicy za pomocą jej wskaźników."

Co to jest indeksowanie Numpy?

Aby uzyskać dostęp do wartości w tablicach jednowymiarowych i wielowymiarowych, Python używa indeksowania tablicy Numpy. Indeksowanie C-rzędu jest używane przez Numpy. W związku z tym najszybciej zmieniająca lokalizacja pamięci jest zazwyczaj reprezentowana przez ostateczny indeks, podczas gdy pierwszy indeks zwykle wskazuje na tę samą lokalizację pamięci.

Standard Python ma składnię „X [OBJ]”, gdzie X jest tablicą, a OBJ (obiekt) to wybór. Mogą być używane do indeksowania ndarrays w zależności od typu obiektu. Dwa rodzaje indeksowania, które zostaną dziś objęte, to podstawowe indeksowanie i zaawansowane indeksowanie. Przykłady, których użyjemy, ułatwia zrozumienie, jak korzystać z indeksowania w odniesieniu do danych w tablicy.

Przykład 1

Pierwszym przypadkiem jest podstawowe indeksowanie. Indeksowanie i podział wzdłuż wymiarów tablicy są znane jako indeksowanie podstawowe. Istnieją trzy typy podstawowych indeksowania: indeksowanie elementów, podstawowe narzędzia do krojenia i indeksowanie wymiarów, które obejmują „elipsy” i „nowe osie."

Nasz pierwszy przypadek pokaże zastosowanie indeksowania pojedynczego elementu w indeksowaniu podstawowym.

importować Numpy jako NP
A = NP.Arange (20)
Drukuj (A [8])
Drukuj (A [-5])

Jak widać z wyjścia, podstawowe indeksowanie działa dokładnie tak jak każda inna standardowa sekwencja Pythona. Jest oparty na zero i pozwala na ujemne wskaźniki na końcu tablicy. Tutaj, używając kodu, najpierw zdefiniowaliśmy zmienną „A” i przekazaliśmy wartość za pomocą NP.ARANGE FUNKCJA, a następnie wybrałem liczbę całkowitą 5 do obliczenia wyjścia.

Przykład 2

Nasz drugi przykład pokaże użycie podstawowego krojenia. Podstawowe krojenie rozszerza podstawową koncepcję krojenia w Python na N Wymiary i występuje, gdy „OBJ” jest połączeniem obiektów i całkowitej lub liczb całkowitych lub całkowitego obiektu wycinka. Podstawowa składnia plasterek to x: y: z, gdzie x reprezentuje indeks startowy, y reprezentuje indeks stop, a Z jest niezerowym krokiem.

Teraz spójrzmy na kod:

importować Numpy jako NP
A = NP.tablica ([7, 8, 9, 10, 11, 12, 13, 14, 15])
Drukuj (A [2: 11: 3])

W rezultacie otrzymujemy:

Ujemne x i y są interpretowane jako n + x i + y, gdzie n reprezentuje liczbę elementów w odpowiednim wymiarze. Ujemne Z spowoduje wkroczenie w kierunku mniejszych wskaźników. Korzystając z tych samych wartości z góry, uruchamiamy następujący kod, aby uzyskać wynik tablicy. Kod to [-7: 15], a tablica jest jego wynikiem.

Dane wyjściowe jest tutaj podane.

W przypadku następujących wymiarów zakłada się, że w krotce selekcji jest mniej niż n. Kod to:

Tutaj (2, 3, 1) jest generowane, jak widać poniżej.

Przykład 3

W tym przykładzie użyjemy narzędzi indeksowania wymiarów elipsy i nowxis, a także kombinacji tych dwóch.

Zobacz załączony ekran poniżej.

Oba te kody są ze sobą równe, a uruchamianie jednego z tych kodów da to samo wyjście.

Oto pomysł, powinniśmy dołączyć do dwóch rodzajów indeksowania, podstawowego i zaawansowanego:

A […, 0]
a [:,: 0
importować Numpy jako NP
Drukuj („Połączenie podstawowego i zaawansowanego indeksu:”)
A = NP.Arange (6)
wydrukować (a [:, np.newaxis] + a [np.newaxis,:])

Zdefiniowana zmienna „A” używa NP.Arange Funkcja i przekazuje wartość „6”. Drugi wiersz kodu deklaruje wartość zmiennej jako „[: np. newaxis] + a [np.Newaxis,:] ”. Wyjście uruchamiania kodu jest jak poniżej.

Teraz przechodzimy do zaawansowanego indeksowania w indeksowaniu Numpy.

Przykład 4

W tej sprawie dotyczy pierwszego rodzaju zaawansowanego indeksowania, zwanego indeksowaniem całkowitym. Każdy element pierwszego wymiaru jest sparowany z elementem drugiego wymiaru podczas indeksowania z liczbami całkowitych. W rezultacie odpowiednie elementy są wybierane z indeksami elementu (0,0), (1,0) i (2,1) w tym przykładzie.

importować Numpy jako NP
A = NP.tablica ([[7, 8], [9, 10], [11, 12]])
Drukuj ([[0, 1, 1], [0, 0, 1]])

Wyjście to:

Przykład 5

W tym przykładzie powinniśmy spróbować połączyć podstawowe indeksowanie i zaawansowane indeksowanie.

importować Numpy jako NP
A = NP.tablica ([[7, 8, 9], [10, 11, 12],
[13, 14, 15], [16, 17, 18]])
Drukuj (A [1: 2, 1: 3])
Drukuj (A [1: 2, [1,2]])

Najpierw wprowadzamy polecenie do importu Numpy, a następnie definiujemy zmienną „A”, a następnie przekazujemy wartość za pomocą NP.funkcja tablicy. Otrzymujemy wyjście, to:

Przykład 6

Porozmawiajmy o wyrażeniach logicznych jako o indeksie. Jest to logiczne wyrażenie, które powoduje „prawdziwe” lub „fałszywe”. Zwracane są tylko te elementy, które spełniają wyrażenie logiczne. Za pomocą tej metody wymagane wartości elementów są filtrowane.

Nasz scenariusz polega na wybraniu liczby większej niż 15 z niektórych wartości. Kod, który uruchomimy, to: '

importować Numpy jako NP
A = NP.tablica ([5, 8, 15, 17, 20])
Drukuj (A [A> 15])

Po zdefiniowaniu zmiennej i przekazaniu powyższych wartości do NP.Funkcja tablicy, drukujemy dla wartości większej niż numer 15 i otrzymujemy następujące dane wyjściowe:

Jeśli istnieje tylko jedna tablica logiczna i nie ma tablicy całkowitej, kształt wyjściowy będzie jednowymiarowy i zawiera liczbę rzeczywistych elementów tablicy boolowskiej, a następnie pozostałe wymiary indeksowanej tablicy. Uruchommy następujący kod:

Importuj Numpy
ABC = Numpy.Arange (15).Reshape (3, 5)
YZ = ABC> 20
Drukuj (YZ [: 3])

Funkcje, których używamy w tym kodzie, to funkcje NP.Arange () i reshape () po zdefiniowaniu zmiennej jako „ABC” i drugiej zmiennej jako „YZ”, której wartość jest „ABC” jest większa niż 15.

Po wykonaniu kodu otrzymujemy następujący wynik.

Wniosek

W tym artykule nauczyliśmy się definicji indeksowania Numpy, a także dwóch różnych rodzajów indeksowania Numpy, dodatkowo podzielonych na wiele kategorii i funkcji. Dzięki różnym przykładom nauczyliśmy się różnych sposobów korzystania z indeksowania Numpy w postaci podstawowego i zaawansowanego indeksowania. Łączymy również typy indeksowania, aby sprawdzić, jaki byłby wynik. Wypróbuj dostarczone przykłady i zobacz, jak działają dla Ciebie w drodze do nauki o indeksowaniu Python Numpy.