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([[-1.14718824, -0.54209799, -0.45049905],
[-0.02451891, 0.41275411, 1.33090796],
[ 0.70262199, 1.38217277, -1.14442492],
[-0.22001925, -0.31659483, 0.36900167],
[-0.19731392, -0.29403516, -0.50274743],
[-0.93386482, -1.12466501, -0.99819188],
[-2.33723639, -1.10837584, 0.00246974]])
[2]:
data.sort(0)
data
[2]:
array([[-2.33723639, -1.12466501, -1.14442492],
[-1.14718824, -1.10837584, -0.99819188],
[-0.93386482, -0.54209799, -0.50274743],
[-0.22001925, -0.31659483, -0.45049905],
[-0.19731392, -0.29403516, 0.00246974],
[-0.02451891, 0.41275411, 0.36900167],
[ 0.70262199, 1.38217277, 1.33090796]])
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([[-2.33723639, -1.14442492, -1.12466501],
[-1.14718824, -1.10837584, -0.99819188],
[-0.93386482, -0.54209799, -0.50274743],
[-0.45049905, -0.31659483, -0.22001925],
[-0.29403516, -0.19731392, 0.00246974],
[-0.02451891, 0.36900167, 0.41275411],
[ 0.70262199, 1.33090796, 1.38217277]])