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

data = np.random.randn(7, 3)

data
[1]:
array([[-0.56284094, -0.33779884,  0.01886388],
       [-1.61021704,  0.52704153,  0.96303615],
       [ 0.81173664, -4.40632737,  0.58281267],
       [ 0.24646619,  0.73165879,  0.64359417],
       [ 2.06398772, -0.74374727, -0.24729191],
       [-0.19820382,  1.28179855, -0.47229339],
       [-0.40045568,  0.55265251,  0.49467883]])
[2]:
data.sort(0)

data
[2]:
array([[-1.61021704, -4.40632737, -0.47229339],
       [-0.56284094, -0.74374727, -0.24729191],
       [-0.40045568, -0.33779884,  0.01886388],
       [-0.19820382,  0.52704153,  0.49467883],
       [ 0.24646619,  0.55265251,  0.58281267],
       [ 0.81173664,  0.73165879,  0.64359417],
       [ 2.06398772,  1.28179855,  0.96303615]])

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

[6]:
np.sort(data, axis=1)
[6]:
array([[-4.40632737, -1.61021704, -0.47229339],
       [-0.74374727, -0.56284094, -0.24729191],
       [-0.40045568, -0.33779884,  0.01886388],
       [-0.19820382,  0.49467883,  0.52704153],
       [ 0.24646619,  0.55265251,  0.58281267],
       [ 0.64359417,  0.73165879,  0.81173664],
       [ 0.96303615,  1.28179855,  2.06398772]])