Array nach Spalte in NumPy sortieren

Muhammad Maisam Abbas 30 Januar 2023
  1. NumPy Sortiere Array nach Spalte mit der Funktion numpy.sort()
  2. NumPy Sortiere Array nach Spalte mit der Funktion numpy.argsort()
Array nach Spalte in NumPy sortieren

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.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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