Tablica dzielenia NumPy
Dzielenie tablic NumPy
Dzielenie jest odwrotną operacją łączenia.
Łączenie łączy wiele tablic w jedną, a dzielenie dzieli jedną tablicę na wiele.
Używamy array_split()
do dzielenia tablic, przekazujemy do niej tablicę, którą chcemy podzielić oraz liczbę podziałów.
Przykład
Podziel tablicę na 3 części:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr =
np.array_split(arr, 3)
print(newarr)
Uwaga: Zwracana wartość to tablica zawierająca trzy tablice.
Jeśli tablica ma mniej elementów niż jest to wymagane, odpowiednio dostosuje się od końca.
Przykład
Podziel tablicę na 4 części:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr =
np.array_split(arr, 4)
print(newarr)
Uwaga: Mamy również split()
dostępną metodę, ale nie dostosuje elementów, gdy elementów jest mniej w tablicy źródłowej do podziału, jak w powyższym przykładzie, array_split()
działa poprawnie, ale
split()
nie powiedzie się.
Podziel na tablice
Zwracaną wartością array_split()
metody jest tablica zawierająca każdy element podziału jako tablicę.
Jeśli podzielisz tablicę na 3 tablice, możesz uzyskać do nich dostęp z wyniku, tak jak każdy element tablicy:
Przykład
Uzyskaj dostęp do podzielonych tablic:
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])
Dzielenie tablic 2-D
Użyj tej samej składni podczas dzielenia tablic 2-D.
Użyj array_split()
metody, przekaż tablicę, którą chcesz podzielić, oraz liczbę podziałów, które chcesz wykonać.
Przykład
Podziel szyk 2-D na trzy szyki 2-D.
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)
Powyższy przykład zwraca trzy tablice 2-D.
Spójrzmy na inny przykład, tym razem każdy element w tablicach 2-D zawiera 3 elementy.
Przykład
Podziel szyk 2-D na trzy szyki 2-D.
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)
Powyższy przykład zwraca trzy tablice 2-D.
Ponadto możesz określić, wokół której osi chcesz dokonać podziału.
Poniższy przykład zwraca również trzy tablice 2-W, ale są one podzielone wzdłuż wiersza (oś=1).
Przykład
Podziel szyk 2-D na trzy szyki 2-D wzdłuż rzędów.
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)
Alternatywnym rozwiązaniem jest użycie hsplit()
przeciwieństwa
hstack()
Przykład
Użyj tej hsplit()
metody, aby podzielić szyk 2-D na trzy szyki 2-D wzdłuż rzędów.
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)
Uwaga: Podobne alternatywy do vstack()
i
dstack()
są dostępne jako
vsplit()
i
dsplit()
.