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