Verwenden der Integer-Array-Indizierung zum Extrahieren von Elementen basierend auf sekundären Array-Indizes
In dem gegebenen Szenario besteht das Ziel darin, bestimmte Elemente aus einem abzurufen Array A mithilfe von Indizes, die in einem zweiten Array B angegeben sind. Anstatt sich auf np.take oder np.choose zu verlassen, besteht ein einfacherer Ansatz darin, die Integer-Array-Indizierung von NumPy zu verwenden:
A[np.arange(A.shape[0]),B.ravel()]
So erzielt dieser Code das gewünschte Ergebnis:
Dieser Ansatz ist besonders nützlich, wenn B ist ein 1D-Array oder eine Liste von Spaltenindizes. Durch das Überspringen der Reduzierungsoperation wird der Code noch einfacher:
A[np.arange(A.shape[0]),B]
Beispiel:
A = np.array([[0, 1], [2, 3], [4, 5]]) B = np.array([1, 0, 1]) result = A[np.arange(A.shape[0]), B] print(result) # Output: [1, 2, 5]
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3