Heim  >  Artikel  >  Backend-Entwicklung  >  Wie extrahiere ich Elemente aus einem 2D-Array mithilfe von Indizes aus einem anderen Array?

Wie extrahiere ich Elemente aus einem 2D-Array mithilfe von Indizes aus einem anderen Array?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-09 11:40:021028Durchsuche

How to Extract Elements from a 2D Array Using Indices from Another Array?

NumPy-Array als Indizes für die 2. Dimension eines anderen Arrays verwenden

Um bestimmte Elemente aus einem 2D-Array basierend auf von a bereitgestellten Indizes zu extrahieren Im zweiten Array können Sie die Ganzzahl-Array-Indizierung von NumPy nutzen.

Betrachten Sie dieses Beispiel:

A = np.array([[0,1], [2,3], [4,5]])
B = np.array([[1], [0], [1]], dtype='int')

Um die folgende gewünschte Ausgabe zu erhalten:

C = np.array([[1], [2], [5]])

Sie können das verwenden Folgende Methode:

A[np.arange(A.shape[0]),B.ravel()]

So funktioniert es:

  • np.arange(A.shape[0]) erstellt ein Array mit Indizes für jede Zeile von A.
  • B.ravel() flacht B ab und entfernt alle zusätzlichen Dimensionen.
  • Das kombinierte Indexarray [np.arange(A.shape[0]),B.ravel() ] gibt die zu extrahierenden Zeilen- und Spaltenindizes in A an.

Wenn B alternativ ein 1D-Array oder eine Liste von Spaltenindizes ist, können Sie die Reduzierung mit .ravel() überspringen:

A[np.arange(A.shape[0]),B]

Diese Methode bietet einen einfachen Ansatz zum Extrahieren von Elementen aus einem 2D-Array mithilfe von Indizes, die von einem anderen Array abgeleitet sind.

Das obige ist der detaillierte Inhalt vonWie extrahiere ich Elemente aus einem 2D-Array mithilfe von Indizes aus einem anderen Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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