Heim > Backend-Entwicklung > Python-Tutorial > Wie indiziere ich mehrere Arrays in NumPy?

Wie indiziere ich mehrere Arrays in NumPy?

Patricia Arquette
Freigeben: 2024-11-10 00:34:02
Original
1098 Leute haben es durchsucht

How to Index Multiple 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]])
Nach dem Login kopieren

Und Matrix B enthält Indizes von Elementen in A:

array([[0, 0, 1, 2],
       [0, 3, 2, 1],
       [3, 2, 1, 0]])
Nach dem Login kopieren

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]
Nach dem Login kopieren

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])
Nach dem Login kopieren

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]]
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage