NumPy Partition-Funktion

PythonPythonBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernst du die Funktion numpy.partition() der Numpy-Bibliothek kennen. Diese Funktion wird verwendet, um das Eingabearray gemäß den angegebenen Argumenten aufzuteilen und eine partitionierte Kopie des Eingabearrays zurückzugeben. Die Funktion numpy.partition() ist hilfreich, wenn wir schnell das k-kleinste oder k-größte Element in einem Array finden möchten, ohne das gesamte Array zu sortieren.

Tipps für die VM

Nachdem der VM-Start abgeschlossen ist, klicke in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.

Manchmal musst du einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Operationen kann aufgrund von Einschränkungen in Jupyter Notebook nicht automatisiert werden.

Wenn du bei der Lernphase Probleme hast, kannst du Labby gerne fragen. Gib nach der Sitzung Feedback, und wir werden das Problem für dich prompt beheben.

Importieren der Numpy-Bibliothek

Zunächst müssen wir die Numpy-Bibliothek importieren, die in Python üblicherweise zur Arbeit mit Arrays und Matrizen verwendet wird.

import numpy as np

Erstellen des Eingabearrays

Als nächstes werden wir ein Eingabearray mit der array()-Methode von Numpy erstellen. Dieses Array wird der Ausgangspunkt für die Verwendung der numpy.partition()-Funktion sein.

inp_ar = np.array([2, 0, 1, 5, 4, 9, 78, 34])
print("Das Eingabearray:")
print(inp_ar)

Partitionieren des Arrays

Jetzt werden wir die numpy.partition()-Funktion verwenden, um das Eingabearray inp_ar um die 5-kleinste Zahl zu partitionieren. Wir werden auch das resultierende partitionierte Array ausgeben.

output = np.partition(inp_ar, 5)
print("Das partitionierte Array:")
print(output)

Partitionieren eines Arrays mit mehreren k-Werten

Die numpy.partition()-Funktion ermöglicht auch das Partitionieren um mehrere k-Werte. In diesem Beispiel werden wir ein Array um die 1-kleinste und 3-kleinste Zahl partitionieren.

arr = np.array([7, 4, 8, 1, 10, 13])
print("Das Eingabearray:")
print(arr)

output = np.partition(arr, (1, 3))
print("Das partitionierte Array:")
print(output)

Axis, Art und Reihenfolge angeben

Die numpy.partition()-Funktion hat auch optionale Parameter, mit denen Sie angeben können, entlang welcher Achse partitioniert werden soll, welche Art der Sortierung durchgeführt werden soll und in welcher Reihenfolge Felder verglichen werden sollen. In diesem Beispiel werden wir diese optionalen Parameter verwenden, um ein 2D-Array entlang der zweiten Achse zu partitionieren und die Sortierart und -reihenfolge anzugeben.

arr_2d = np.array([[4, 5, 2], [3, 1, 6]])
print("Das Eingabe-2D-Array:")
print(arr_2d)

output = np.partition(arr_2d, 1, axis=1, kind='heapsort', order=('col1', 'col2', 'col0'))
print("Das partitionierte 2D-Array:")
print(output)

Partitionieren mit negativem k-Wert

Die numpy.partition()-Funktion kann auch negative Werte des kth-Parameters verarbeiten. In diesem Beispiel werden wir ein Array um die -2-kleinste Zahl partitionieren.

arr = np.array([9, 3, 4, 1, 6])
print("Das Eingabearray:")
print(arr)

output = np.partition(arr, -2)
print("Das partitionierte Array:")
print(output)

Zusammenfassung

In diesem Lab haben Sie sich mit der numpy.partition()-Funktion der Numpy-Bibliothek beschäftigt. Wir haben gelernt, wie man ein Eingabearray erstellt, es mit der numpy.partition()-Funktion partitioniert, um mehrere k-Werte partitioniert, die Achse, die Art und die Reihenfolge angibt und negative k-Werte behandelt. Die numpy.partition()-Funktion ist nützlich, wenn es um große Arrays geht und man schnell das k-kleinste oder -größte Element finden möchte, ohne das gesamte Array zu sortieren.