Heim >Backend-Entwicklung >Python-Tutorial >Wie indiziere ich mehrere Arrays in NumPy?
Indizierung mehrerer Arrays in NumPy
In NumPy erfordert die Indizierung über eindimensionale Arrays hinaus fortgeschrittene Techniken. Ein Szenario besteht darin, ein Array basierend auf den Werten eines anderen Arrays zu indizieren, was als mehrdimensionale Indizierung bezeichnet wird.
Betrachten Sie Matrizen A mit beliebigen Werten:
array([[ 2, 4, 5, 3], [ 1, 6, 8, 9], [ 8, 7, 0, 2]])
Und Matrix B enthält Indizes von Elementen in A:
array([[0, 0, 1, 2], [0, 3, 2, 1], [3, 2, 1, 0]])
Um Werte aus A mithilfe der Indizes in B auszuwählen können Sie die erweiterte Indizierung von NumPy verwenden:
A[np.arange(A.shape[0])[:,None],B]
Dieser Indizierungsansatz kombiniert die Zeilenindizes (0, 1, 2) mit den in B angegebenen Indizes.
Alternativ können Sie die lineare Indizierung verwenden:
m,n = A.shape out = np.take(A,B + n*np.arange(m)[:,None])
Hier stellen m und n die Anzahl der Zeilen bzw. Spalten in A dar. np.take() extrahiert Elemente aus A basierend auf den linearen Indizes, die durch die Summe von B und n multipliziert mit dem Bereich der Zeilenindizes generiert werden.
Mit beiden Die Ausgabe lautet:
[[2, 2, 4, 5], [1, 9, 8, 6], [2, 0, 7, 8]]
Diese Indizierungsmethode bietet Flexibilität beim Zugriff auf und bei der Bearbeitung von Elementen basierend auf mehreren Kriterien und erhöht die Vielseitigkeit von NumPy-Arrays für komplexe Datenverarbeitungsszenarien.
Das obige ist der detaillierte Inhalt vonWie indiziere ich mehrere Arrays in NumPy?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!