Array nach Spalte in NumPy sortieren
-
NumPy Sortiere Array nach Spalte mit der Funktion
numpy.sort()
-
NumPy Sortiere Array nach Spalte mit der Funktion
numpy.argsort()
In diesem Tutorial werden Methoden zum Sortieren eines Arrays nach Spalten in NumPy vorgestellt.
NumPy Sortiere Array nach Spalte mit der Funktion numpy.sort()
Angenommen, wir haben ein 2D-NumPy-Array und möchten die Zeilen nach der Reihenfolge der Elemente in einer bestimmten Spalte sortieren. Dies können wir mit der Funktion numpy.sort()
tun. Die numpy.sort()
-Funktion sortiert das NumPy-Array. Den Spaltenindex und die Achse können wir in den Parametern order
und axis
der Funktion numpy.sort()
angeben. Wir müssen unser Array in ein strukturiertes Array mit Feldern umwandeln, um die Funktion numpy.sort()
zu verwenden. Dazu können wir die Funktion numpy.view()
verwenden. Siehe das folgende Codebeispiel.
import numpy as np
array = np.array([[1, 1, 2], [0, 0, 1], [1, 1, 3]])
print("Array before sorting\n", array)
array.view("i8,i8,i8").sort(order=["f1"], axis=0)
print("Array after sorting\n", array)
Ausgabe:
Array before sorting
[[1 1 2]
[0 0 1]
[1 1 3]]
Array after sorting
[[0 0 1]
[1 1 2]
[1 1 3]]
Wir haben zuerst das 2D-NumPy-Array array
mit der Funktion np.array()
erstellt. Dann haben wir das array
mit der Funktion array.view()
in ein strukturiertes Array umgewandelt. Danach haben wir das Array nach der zweiten Spalte mit der Funktion sort(order=['f1'], axis=0)
sortiert. f1
bezieht sich hier auf die zweite Spalte.
NumPy Sortiere Array nach Spalte mit der Funktion numpy.argsort()
Eine andere einfachere Möglichkeit, genau dasselbe wie beim vorherigen Ansatz zu tun, besteht darin, die Funktion numpy.argsort()
zu verwenden. Die numpy.argsort()
-Funktion wird auch verwendet, um die Elemente eines Arrays zu sortieren. Es ist dem vorherigen Ansatz sehr ähnlich, aber wir müssen die Funktion numpy.view()
nicht verwenden, damit dieser Ansatz funktioniert. Die Funktion numpy.argsort()
gibt die Indizes zurück, die zum Sortieren eines Arrays verwendet würden. Siehe das folgende Codebeispiel.
import numpy as np
array = np.array([[1, 1, 2], [0, 0, 1], [1, 1, 3]])
print("Array before sorting\n", array)
array[array[:, 1].argsort()]
print("Array after sorting\n", array)
Ausgabe:
Array before sorting
[[1 1 2]
[0 0 1]
[1 1 3]]
Array after sorting
[[0 0 1]
[1 1 2]
[1 1 3]]
Wir haben zuerst ein 2D-NumPy-Array array
mit der Funktion np.array()
erstellt. Wir haben dann mit einem Array-Slice nur die zweite Spalte des array
angegeben und mit der Funktion np.argsort()
sortiert. Wir haben die von der Funktion np.argsort()
zurückgegebenen Indizes verwendet, um das array
zu sortieren.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn