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().