Sortieren

Wie in Pythons list können NumPy-Arrays mit der Sortiermethode numpy.sort in-place sortiert werden. Dabei könnt ihr jeden eindimensionalen Abschnitt von Werten in einem mehrdimensionalen Array an Ort und Stelle entlang einer Achse sortieren, indem ihr die Achsennummer zum Sortieren übergebt:

[1]:
import numpy as np


rng = np.random.default_rng()
data = rng.random((7, 3))

data
[1]:
array([[0.48434885, 0.58017775, 0.87659136],
       [0.46718992, 0.13668531, 0.65802304],
       [0.68315702, 0.47490695, 0.75162819],
       [0.01743604, 0.55087254, 0.47620903],
       [0.19326966, 0.54774147, 0.89596431],
       [0.06853136, 0.07731341, 0.6533622 ],
       [0.29960324, 0.10849735, 0.92689653]])
[2]:
data.sort(0)

data
[2]:
array([[0.01743604, 0.07731341, 0.47620903],
       [0.06853136, 0.10849735, 0.6533622 ],
       [0.19326966, 0.13668531, 0.65802304],
       [0.29960324, 0.47490695, 0.75162819],
       [0.46718992, 0.54774147, 0.87659136],
       [0.48434885, 0.55087254, 0.89596431],
       [0.68315702, 0.58017775, 0.92689653]])

np.sort gibt hingegen eine sortierte Kopie eines Arrays zurück, anstatt das Array an Ort und Stelle zu verändern:

[3]:
np.sort(data, axis=1)
[3]:
array([[0.01743604, 0.07731341, 0.47620903],
       [0.06853136, 0.10849735, 0.6533622 ],
       [0.13668531, 0.19326966, 0.65802304],
       [0.29960324, 0.47490695, 0.75162819],
       [0.46718992, 0.54774147, 0.87659136],
       [0.48434885, 0.55087254, 0.89596431],
       [0.58017775, 0.68315702, 0.92689653]])