Kursinhalt
Ultimatives Numpy
Ultimatives Numpy
Ganzzahl-Array-Indizierung
Abgesehen von der grundlegenden Indizierung, bei der wir einen einzelnen Index mit einer ganzen Zahl verwenden, ermöglicht uns NumPy auch die Verwendung eines gesamten 1D-Arrays von ganzen Zahlen (eine Liste von ganzen Zahlen ist ebenfalls möglich) zur Indizierung.
Ganzzahl-Array-Indizierung in 1D-Arrays
Jedes Element des zur Indizierung verwendeten Ganzzahl-Arrays wird als Index behandelt. Zum Beispiel ruft array[[0, 1, 3]]
die Elemente an den Indizes 0
, 1
und 3
in Form eines 1D-Arrays ab, vorausgesetzt, dass array
selbst ein 1D-Array ist. Sie können auch NumPy-Arrays zur Indizierung verwenden, aber das macht den Code umständlicher.
import numpy as np array = np.array([23, 41, 7, 80, 3]) # Retrieving elements at indices 0, 1 and 3 print(array[[0, 1, 3]]) # Retrieving elements at indices 1, -1 and 2 in this order print(array[[1, -1, 2]]) # IndexError is thrown since index 5 is out of bounds print(array[[2, 5]])
Ganzzahlige Array-Indexierung in 1D-Arrays
Wenn wir von 2D- und höherdimensionalen Arrays sprechen, funktioniert die ganzzahlige Array-Indexierung genauso wie in 1D-Arrays entlang jeder Achse. Wenn wir nur ein ganzzahliges Array zur Indexierung verwenden, indizieren wir nur entlang einer Achse (Achse 0). Wenn wir zwei Arrays durch ein Komma getrennt verwenden, indizieren wir entlang beider Achsen (Achse 0 und Achse 1).
Die Indexierung nur entlang Achse 0 mit einem Array von Ganzzahlen gibt ein 2D-Array zurück. Wenn wir Elemente über eine solche Indexierung abrufen, gruppieren wir sie in einem neuen Array. Dieses neue Array besteht aus 1D-Arrays, und das Gruppieren erhöht die Dimensionalität um eins, was zu einem 2D-Array führt.
Die Indexierung entlang Achse 0 und Achse 1 mit zwei Arrays von Ganzzahlen gibt ein 1D-Array zurück.
Hinweis
Alle für jede der Achsen verwendeten ganzzahligen Arrays müssen die gleiche Form haben.
import numpy as np array_2d = np.array([ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]) # Retrieving first and the third row print(array_2d[[0, 2]]) # Retrieving the main diagonal elements print(array_2d[[0, 1, 2], [0, 1, 2]]) # Retrieving the first and third element of the second row print(array_2d[1, [0, 2]]) # IndexError is thrown, since index 3 along axis 0 is out of bounds print(array_2d[[0, 3], [0, 1]])
Wie Sie sehen können, können wir auch die einfache Ganzzahlindizierung und die Ganzzahlarrayindizierung kombinieren.
Hinweis
Wenn mindestens einer der Indizes außerhalb des Bereichs liegt, wird erneut ein
IndexError
ausgelöst.
Was die Anwendungen betrifft, so ist eine solche Indizierung nützlich, wenn Sie bestimmte Elemente auswählen müssen, die nicht nebeneinander liegen oder keiner regelmäßigen Reihenfolge folgen. Im Gegensatz zum Slicing, das mit kontinuierlichen Bereichen arbeitet, können Sie mit dieser Methode genau auswählen, welche Elemente abgerufen werden sollen. Es ist hilfreich, wenn Sie verstreute Daten extrahieren oder Werte in einem Array neu anordnen möchten.
1. Sie analysieren die monatlichen Verkaufsdaten (in Tausend) für fünf Produkte. Was ist die Ausgabe des Codes?
2. Das temperatures
-Array repräsentiert die wöchentlichen Temperaturen (in °C) von drei Städten über Montag, Dienstag und Mittwoch. Wählen Sie die richtige Option, um die Temperaturen von Berlin am Montag und Dienstag und Madrid am Dienstag abzurufen.
Danke für Ihr Feedback!