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]])