Rozdzielanie tablic 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)

Uruchom przykład

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)

Uruchom przykład

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])

Uruchom przykład

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)

Uruchom przykład

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)

Uruchom przykład

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)

Uruchom przykład

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)

Uruchom przykład

Uwaga:vsplit() i dsplit() Można użyć z vstack() i dstack() Podobne alternatywne metody.