Arrays mit erweiterten NumPy-Techniken indizieren
In verschiedenen Rechenszenarien wird es notwendig, ein Array basierend auf den Werten eines anderen zu indizieren. Betrachten Sie das Beispiel, in dem wir zwei Matrizen haben: A mit beliebigen Werten und B mit Indizes. Das Ziel besteht darin, Werte aus A auszuwählen, die durch die Indizes in B bestimmt werden.
Um dies zu erreichen, bietet NumPy verschiedene Indizierungsmethoden an:
1. Erweiterte Indizierung:
A[np.arange(A.shape[0])[:, None], B]
Dieser Indizierungsansatz initialisiert ein neues Array mit np.arange, um einen Spaltenindex für jede Zeile zu erstellen. Anschließend werden diese Zeilenindizes als erste Dimension und die Werte von B als zweite Dimension verwendet, um die Werte von A zu extrahieren.
2. Lineare Indizierung:
m, n = A.shape out = np.take(A, B + n * np.arange(m)[:, None])
Alternativ können Sie die lineare Indizierung verwenden, wobei m und n die Form von A darstellen . Es verwendet np.take, um Elemente basierend auf dem kombinierten Array B und Indexoffsets auszuwählen, die durch Multiplikation von n mit den Zeilenindizes von np.arange erstellt werden .
Das obige ist der detaillierte Inhalt vonWie können Arrays mit erweiterten NumPy-Techniken effizient indiziert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!