Wie greife ich mithilfe von Indizes aus einem anderen Array auf Array-Elemente in NumPy zu?

Susan Sarandon
Freigeben: 2024-11-11 02:03:02
Original
706 Leute haben es durchsucht

How to Access Array Elements in NumPy Using Indices from Another Array?

Zugriff auf Array-Elemente mithilfe von Array-Indizes in NumPy

Die indizierten Funktionen von NumPy bieten leistungsstarke Techniken zur Datenbearbeitung, einschließlich der Möglichkeit, Elemente aus einem Array auszuwählen Verwendung von Indizes, die von einem anderen Array angegeben werden. Um dies zu erreichen:

Ansatz 1: Erweiterte Indizierung verwenden

A[np.arange(A.shape[0])[:,None] ,B]<br>

Dieser Code nutzt die erweiterte Indizierung, wobei np.arange(A.shape[0])[:,None] einen Spaltenvektor mit Indizes für jede Zeile in erstellt A. Die Kombination mit B ermöglicht die Indizierung von A entlang sowohl von Zeilen als auch von Spalten.

Ansatz 2: Lineare Indizierung

m,n = A.shape<br>np.take(A,B n*np.arange(m)[:,None])<br>

Dieser Ansatz nutzt eine lineare Indizierung, bei der jedes Element in A adressiert wird durch einen einzelnen Index. Zunächst wird ein linearer Index berechnet, indem die entsprechende Zeile von B zu einer mit np.arange generierten linearen Sequenz hinzugefügt wird. Dieser lineare Index wird dann verwendet, um Elemente aus A abzurufen.

Beispielverwendung:

Gegebene Matrix A:

array([[ 2, 4, 5, 3],
       [ 1, 6, 8, 9],
       [ 8, 7, 0, 2]])
Nach dem Login kopieren

Und Indexmatrix B :

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

Die Anwendung der Ansätze führt zum gewünschten Ergebnis:

array([[2, 2, 4, 5],
       [1, 9, 8, 6],
       [2, 0, 7, 8]])
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie greife ich mithilfe von Indizes aus einem anderen Array auf Array-Elemente in NumPy zu?. 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