Wie zum extrahieren von Elementen aus einer matrix mit einem Vektor von Indizes mithilfe von numpy?
Angenommen ich habe eine matrix a der Ordnung, mxn und ein Vektor der mx1. Ich möchte zu extrahieren Elemente aus jeder Zeile der matrix A, indem Sie mit den Elementen der Vektoren als Versatz in jeder Reihe.
Beispielsweise
A = [[3, 0, 0, 8, 3],
[9, 3, 2, 2, 6],
[5, 5, 4, 2, 8],
[3, 8, 7, 1, 2],
[3, 9, 1, 5, 5]]
und ein Vektor
y = [4,2,1,3,2]
Was ich erreichen möchte ist, dass ich will, einen Weg zu extrahieren Sie die Elemente derart, dass jedes element des Vektor-Indizes ein element in der entsprechenden Zeile von A, dh, die Umsetzung
for i in xrange(y):
A[i,y[i]] = #perform operations here
ohne die Verwendung von expliziten Schlaufen.
Die erwartete Ausgabe ist,
[3,2,5,1,1]
Bin ich mit Python und numpy-Bibliothek.
Danke für die Hilfe!
- Könnten Sie auch hinzufügen, die erwartete Ausgabe?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie beginnen, durch die Umwandlung von Liste
A
in ein NumPy-array:Und nach, dass nichts verhindert, dass Sie mit erweiterte Indizierung:
Den folgenden hält sich an die konventionellen python-Stil, aber ist nicht auf Geschwindigkeit optimiert. Probieren Sie es aus und sehen, ob es funktioniert für Ihren Anwendungsfall.