NumPy- Splitting-Array
Aufteilen von NumPy-Arrays
Das Aufteilen ist ein umgekehrter Vorgang des Verbindens.
Joining führt mehrere Arrays zu einem zusammen und Splitting zerlegt ein Array in mehrere.
Wir verwenden array_split()
zum Aufteilen von Arrays, wir übergeben das Array, das wir aufteilen möchten, und die Anzahl der Aufteilungen.
Beispiel
Teilen Sie das Array in 3 Teile:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr =
np.array_split(arr, 3)
print(newarr)
Hinweis: Der Rückgabewert ist ein Array, das drei Arrays enthält.
Wenn das Array weniger Elemente als erforderlich hat, wird es am Ende entsprechend angepasst.
Beispiel
Teilen Sie das Array in 4 Teile:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr =
np.array_split(arr, 4)
print(newarr)
Hinweis: Wir haben auch die Methode split()
zur Verfügung, aber sie passt die Elemente nicht an, wenn sich weniger Elemente im Quellarray zum Teilen befinden, wie im obigen Beispiel, array_split()
funktionierte richtig,
split()
würde aber fehlschlagen.
In Arrays aufteilen
Der Rückgabewert der array_split()
Methode ist ein Array, das jede Teilung als Array enthält.
Wenn Sie ein Array in 3 Arrays aufteilen, können Sie wie auf jedes Array-Element über das Ergebnis darauf zugreifen:
Beispiel
Greifen Sie auf die geteilten Arrays zu:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr =
np.array_split(arr, 3)
print(newarr[0])
print(newarr[1])
print(newarr[2])
Aufteilen von 2-D-Arrays
Verwenden Sie beim Teilen von 2-D-Arrays dieselbe Syntax.
Verwenden Sie die array_split()
Methode, übergeben Sie das Array, das Sie aufteilen möchten, und die Anzahl der Aufteilungen, die Sie durchführen möchten.
Beispiel
Teilen Sie das 2-D-Array in drei 2-D-Arrays auf.
import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9,
10], [11, 12]])
newarr = np.array_split(arr, 3)
print(newarr)
Das obige Beispiel gibt drei 2-D-Arrays zurück.
Schauen wir uns ein weiteres Beispiel an, dieses Mal enthält jedes Element in den 2-D-Arrays 3 Elemente.
Beispiel
Teilen Sie das 2-D-Array in drei 2-D-Arrays auf.
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10,
11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.array_split(arr, 3)
print(newarr)
Das obige Beispiel gibt drei 2-D-Arrays zurück.
Außerdem können Sie angeben, um welche Achse herum Sie die Teilung vornehmen möchten.
Das folgende Beispiel gibt ebenfalls drei 2-D-Arrays zurück, die jedoch entlang der Zeile (Achse = 1) aufgeteilt sind.
Beispiel
Teilen Sie das 2-D-Array entlang von Zeilen in drei 2-D-Arrays auf.
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10,
11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.array_split(arr, 3, axis=1)
print(newarr)
Eine alternative Lösung ist die Verwendung hsplit()
des Gegenteils von
hstack()
Beispiel
Verwenden Sie die hsplit()
Methode, um das 2-D-Array entlang von Zeilen in drei 2-D-Arrays aufzuteilen.
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9],
[10, 11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.hsplit(arr, 3)
print(newarr)
Hinweis: Ähnliche Alternativen zu vstack()
und
dstack()
sind als
vsplit()
und
verfügbar dsplit()
.