Hallo Jungs habe mal eine Frage, wie kann ich ein Numpy array nach der größe sortieren?
Mein Array sieht so aus:
[[1,2,3,4],[2,3,2,3],[2,3,2,3],[23,4,4,2],[4,5,3,4],[4,3,2,4],...,[3,2,3,4]]
Es soll so sortiert werden, dass die größte Fläche an erster stelle steht. Die vorderen beiden Koordinaten zeigen den startpunkt und die hintern beiden die höhe und die breite der Fläche.
gibt es eine Funktion dafür ?
Array sortieren
@kl.feigling89: Erzeuge ein Array das die Flächengrössen enthält, bestimme mit `numpy.argsort()` die Indizes in der sortierten Reihenfolge, und benutze diese um ein sortiertes Array aus dem ursprünglichen Array zu machen.
Mit einer klassischen Liste sähe das so aus:
Ich kenne numpy jetzt nicht wirklich, aber vielleicht gibt es da ja eine analoge sort-Methode.
Code: Alles auswählen
>>> data = [[1,2,3,4],[2,3,2,3],[2,3,2,3],[23,4,4,2],[4,5,3,4],[4,3,2,4],[3,2,3,4]]
>>> >>> data.sort(key=lambda x: x[2]*x[3], reverse=True)
>>> data
[[1, 2, 3, 4], [4, 5, 3, 4], [3, 2, 3, 4], [23, 4, 4, 2], [4, 3, 2, 4], [2, 3, 2, 3], [2, 3, 2, 3]]
-
- User
- Beiträge: 42
- Registriert: Montag 24. Februar 2014, 14:47
Danke hat wunderbar geklappt!