Ich habe 3 numpy Arrays der Form 2xN (mit N groß, ein paar Millionen), nennen sie a1, a2, a3. Dann habe ich ein weiteres Array von Form Nx3, deren Zeilenwerte sich auf eines der Arrays a1, a2, a3 beziehen, nennen es Permutationen. Diese Permutationen Array wie folgt aussieht: [[0, 1, 2], [1,2,0], [1,0,2], ... bis zu N Zeilen]Wählen Sie Werte aus einer Reihe von Arrays nach einem Array von Permutationen
Ich möchte Erstellen Sie weitere 3 numply Arrays b1, b2, b3 der Form 2xN, die den Inhalt der ursprünglichen a1, a2, a3 haben, aber ihre Spalten wurden entsprechend den Zeilen des Permutationsarrays permutiert.
Ich habe versucht, Indexierung stacking die 3 Arrays und numpy.choose, aber ich kann es nicht zum arbeiten. Ich suche nach einer Lösung ohne Python-Schleifen. Jede Hilfe würde sehr geschätzt werden!
EDIT
Nur um zu klären ich die Python-Schleife Umsetzung zeigen, was ich versuche zu tun: b1, b2, b3 von bb
aa = np.dstack((a1, a2, a3))
bb = np.empty_like(aa)
for i, o in enumerate(permutations):
bb[:,i, np.arange(3)] = aa[:, i, o]
Dann würde ich abrufen.
Danke! Ich werde die erste Option verwenden. – martinako
@martinako Yup, scheint wie es ist der schnellste! – Divakar