Wykorzystaj funkcję split_array(). Na przykład, gdy chcesz podzielić 16-elementową macierz na kawałki o długości 5, to robisz:
import numpy as np
arr = np.arange(16)
np.array_split(arr, len(arr)/5)
co da Ci:
[array([0, 1, 2, 3, 4, 5]),
array([ 6, 7, 8, 9, 10]),
array([11, 12, 13, 14, 15])]
Ponieważ 16/5 > 3, to pierwsza macierz ma 6 elementów, nie 5. W przypadku macierzy wielowymiarowej możesz ją spłaszczyć za pomocą metody flatten():
arr = np.arange(16).reshape(4,2,2)
np.alltrue(arr.flatten() == np.arange(16))
# True