Ich muss Elemente der Spalten in der Matrix "A" (3D-Matrix von Achse 0) per 2D-Permutationsmatrix "Pi" aus Argsort, die neue Indizes für alle Spalten enthält permutieren. Durch Anwendung Permutationsmatrix "Pi" auf der Matrix "A" (A [Pi]) Ich werde 4D-Matrix mit neuer Form erhalten. Zum Beispiel ist die Form (A) (2,3,4) und die Form (A & pgr;) ist (2,3,3,4). Ich bin in der Lage, die benötigte sortierte Matrix aus A [pi] per Befehl zu extrahieren: swapaxes (diagonal (A [pi], axis1 = 2, axis2 = 1), 1,2) Aber IMHO scheint es zu kompliziert und langsam. Gibt es eine andere elegante Lösung?numpy Array Permutation Spalten 3D-Matrix mit Argsort
Beispiel:
print(A)
[[[ 73 701 2411 2414]
[ 5515 8292 8414 16135]
[ 100 1241 2146 2931]]
[[ 1335 1747 3418 6312]
[ 3788 5449 5753 9738]
[ 565 3038 3800 5430]]]
pi=argsort(Norm_order(A),0)
print(pi)
[[1, 0, 1],
[0, 1, 0]]
print(swapaxes(diagonal(A[pi],axis1=2,axis2=1),1,2))
[[[ 1335 1747 3418 6312]
[ 5515 8292 8414 16135]
[ 565 3038 3800 5430]]
[[ 73 701 2411 2414]
[ 3788 5449 5753 9738]
[ 100 1241 2146 2931]]]
Dankten Hilfe Willem :) . Ich bin neu hier. –