NumPy dělicí pole


Rozdělení NumPy polí

Dělení je obrácená operace spojování.

Spojení sloučí více polí do jednoho a rozdělení rozdělí jedno pole na více.

Používáme array_split()pro rozdělení polí, předáme mu pole, které chceme rozdělit a počet rozdělení.

Příklad

Rozdělte pole na 3 části:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6])

newarr = np.array_split(arr, 3)

print(newarr)

Poznámka: Vrácená hodnota je pole obsahující tři pole.

Pokud má pole méně prvků, než je požadováno, upraví se podle toho od konce.

Příklad

Rozdělte pole na 4 části:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6])

newarr = np.array_split(arr, 4)

print(newarr)

Poznámka: Metodu máme také k split()dispozici, ale neupraví prvky, když je prvků ve zdrojovém poli méně pro rozdělení, jako je tomu v příkladu výše, array_split()fungovala správně, ale split()selhala.



Rozdělit na pole

Návratovou hodnotou array_split()metody je pole obsahující každé rozdělení jako pole.

Pokud rozdělíte pole na 3 pole, můžete k nim přistupovat z výsledku stejně jako k jakémukoli prvku pole:

Příklad

Přístup k rozděleným polím:

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

Rozdělení 2-D polí

Při rozdělování 2D polí použijte stejnou syntaxi.

Použijte array_split()metodu, předejte pole, které chcete rozdělit, a počet rozdělení, které chcete provést.

Příklad

Rozdělte 2-D pole na tři 2-D pole.

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)

Výše uvedený příklad vrací tři 2D pole.

Podívejme se na další příklad, tentokrát každý prvek ve 2-D polích obsahuje 3 prvky.

Příklad

Rozdělte 2-D pole na tři 2-D pole.

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)

Výše uvedený příklad vrací tři 2D pole.

Kromě toho můžete určit, kolem které osy chcete provést rozdělení.

Níže uvedený příklad také vrací tři 2D pole, ale jsou rozdělena podél řádku (osa=1).

Příklad

Rozdělte 2-D pole na tři 2-D pole podél řad.

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)

Alternativním řešením je použití hsplit()opačného řešení hstack()

Příklad

Tuto metodu použijte hsplit()k rozdělení 2-D pole na tři 2-D pole podél řad.

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)

Poznámka: Podobné alternativy vstack()a dstack()jsou k dispozici jako vsplit()a dsplit().