Heim > Artikel > Backend-Entwicklung > Wie schneide ich ein 2D-Numpy-Array in kleinere 2D-Arrays auf?
Numpy ist eine vielseitige Bibliothek zur Bearbeitung mehrdimensionaler Arrays in Python. Es bietet verschiedene Methoden zur Array-Manipulation, einschließlich Slicing zum Extrahieren bestimmter Abschnitte. In diesem Artikel wird eine Lösung zum Aufteilen eines 2D-Arrays in kleinere 2D-Arrays untersucht und dabei das bereitgestellte Beispiel emuliert:
[[1,2,3,4], -> [[1,2] [3,4] [5,6,7,8]] [5,6] [7,8]]
Die vorgeschlagene Lösung nutzt die Reshape- und Swapaxes-Funktionen, um Erzielen Sie den gewünschten Schnitt. Die Reshape-Funktion ändert die Form des Arrays und die Swapaxes-Funktion ändert die angegebenen Achsen. Im folgenden Python-Code kapselt die blockförmige Funktion diesen Ansatz:
def blockshaped(arr, nrows, ncols): h, w = arr.shape return (arr.reshape(h//nrows, nrows, -1, ncols) .swapaxes(1,2) .reshape(-1, nrows, ncols))
Erklärung:
Um die Verwendung zu veranschaulichen, betrachten Sie das Beispielarray c:
np.random.seed(365) c = np.arange(24).reshape((4, 6))
Slicing c in 2x3 Blöcke:
sliced = blockshaped(c, 2, 3)
in Scheiben geschnitten hält das Gewünschte 2D-Blöcke:
[[[ 0 1 2] [ 6 7 8]] [[ 3 4 5] [ 9 10 11]] [[12 13 14] [18 19 20]] [[15 16 17] [21 22 23]]]
Diese Lösung zeigt, wie man ein 2D-Numpy-Array mithilfe der Reshape- und Swapaxes-Funktionen in kleinere 2D-Arrays aufteilt. Es bietet einen flexiblen und effizienten Ansatz zur Verarbeitung und Bearbeitung von Bildern oder anderen Matrizen.
Das obige ist der detaillierte Inhalt vonWie schneide ich ein 2D-Numpy-Array in kleinere 2D-Arrays auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!