Rozdzielanie tablic w NumPy
- Poprzednia strona Łączenie tablic w NumPy
- Następna strona Wyszukiwanie w tablicach w NumPy
Podział tablic NumPy
Podział jest odwrotną operacją łączenia.
Łączenie (Joining) polega na łączeniu wielu tablic w jedną, a podział (Spliting) polega na podziale jednej tablicy na wiele.
Używamy array_split()
Podziel tablicę, przekaż jej tablicę do podziału i 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)
Komentarz:Zwrócona wartość to tablica zawierająca trzy tablice.
Jeśli liczba elementów w tablicy jest mniejsza niż liczba wymagana, będzie dostosowywana odpowiednio 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()
Metoda jest dostępna, ale gdy liczba elementów źródłowej tablicy jest mniejsza niż liczba podziałów, nie będzie dostosowywać elementów, jak w przykładzie powyżej,array_split()
Działa normalnie, ale split()
będzie się nie powiodła.
Podziel na tablice
array_split()
Zwróconą wartością metody jest tablica zawierająca każdą podzieloną tablicę.
Jeśli podzielisz tablicę na 3 tablice, możesz do nich dostępować tak, jak do elementów dowolnej tablicy:
Przykład
Dostęp do podzielonej tablicy:
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])
Podziel dwuwymiarową tablicę
Podziel dwuwymiarową tablicę, używaj tej samej gramatyki.
Użyj array_split()
Metoda, wprowadź tablicę do podziału i liczbę podziałów.
Przykład
Podziel tę 2-wymiarową macierz na trzy 2-wymiarowe macierze.
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)
W przykładzie powyżej zwrócono trzy 2-wymiarowe macierze.
Spójrzmy na inny przykład, tym razem każdy element 2-wymiarowej macierzy zawiera 3 elementy.
Przykład
Podziel tę 2-wymiarową macierz na trzy 2-wymiarowe macierze.
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)
W przykładzie powyżej zwrócono trzy 2-wymiarowe macierze.
Dodatkowo, możesz określić oś, którą chcesz podzielić.
Poniższy przykład również zwraca trzy 2-wymiarowe macierze, ale są one podzielone wzdłuż wierszy (axis=1).
Przykład
Podziel tę 2-wymiarową macierz na trzy 2-wymiarowe macierze wzdłuż wierszy.
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)
Innym rozwiązaniem jest użycie z hstack()
odwrotne hsplit()
.
Przykład
Używając metody hsplit() podziel 2-wymiarowy macierz na trzy 2-wymiarowe macierze.
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:vsplit()
i dsplit()
Można użyć z vstack()
i dstack()
Podobne alternatywne metody.
- Poprzednia strona Łączenie tablic w NumPy
- Następna strona Wyszukiwanie w tablicach w NumPy