Sagen wir, dass ich eine Matrix a
in Matlab und einen Vektor b
wie folgt:Matlab Sortierfunktion äquivalent in Python
a =
2 1 1
3 3 1
3 2 2
b =
1 3 2
Mit matlab's sort
Funktion ich folgendes erreichen kann:
[n idx] = sort(b)
n =
1 2 3
idx =
1 3 2
anew = a(idx,idx)
anew =
2 1 1
3 2 2
3 1 3
Jetzt möchte ich genau dasselbe in Python tun. Mein Versuch:
a = np.array([[2,1,1],[3,3,1],[3,2,2]])
b = [0,2,1]
idx = [i[0] for i in sorted(enumerate(b), key=lambda x:x[1])]
Das Problem ist, dass ich nicht einen Weg zu bauen, die anew
Matrix finden kann, wie ich Matlab tat verwenden. Ich habe versucht:
anew=a[idx]
anew
array([[2, 1, 1],
[3, 2, 2],
[3, 3, 1]])
Wie Sie sehen können, sind die Ergebnisse (Matlab vs Python) nicht das Gleiche.
Irgendwelche Tipps?
Danke ich wirklich zu schätzen – sera