numpy.array_split
numpy.array_split(a, indices_or_sections, axis=0)
Функция array_split() разбивает массив на несколько подмассивов.
Единственное отличие данной функции от функции split заключается в снятии ограничений на параметр indices_or_sections. В функции array_split параметр indices_or_sections может быть равен числу, которое не делит нацело длинну указанной оси.
-
- a - массив NumPy
- Массив, который необходимо разбить на подмассивы.
- indices_or_sections - целое число или одномерный массив
-
Если указанная ось массива a имеет длинну L, и в качестве параметра
indices_or_sections
указано число n, то сначала будет возвращеноL%n
подмассивов длиннойL//n + 1
иn - L%n
подмассивов длиннойL//n
.Если параметр indices_or_sections является одномерным массивом отсортированных по возрастанию целых чисел, то вдоль указанной оси массив будет разбит на соответствующие указанным числам промежутки. Например, если указан массив
[2,4,7]
, то это будет соответствовать промежуткам[:2], [2:4], [4:7], [7:]
.Если некоторое число в параметре indices_or_sections превышает размер массива вдоль указанной оси, то будет возвращен пустой массив.
- axis - целое число (необязательный)
- Определяет ось вдоль которой происходит разбиение массива. По умолчанию равен 0 (первая ось).
-
- list of ndarrays - список массивов NumPy
- Список подмассивов исходного массива a.
Примеры
>>> import numpy as np
>>>
>>> a = np.arange(13)
>>> a
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
>>>
>>> np.array_split(a, 4)
[array([0, 1, 2, 3]), array([4, 5, 6]), array([7, 8, 9]), array([10, 11, 12])]
>>>
>>> np.array_split(a, 5)
[array([0, 1, 2]), array([3, 4, 5]), array([6, 7, 8]), array([ 9, 10]), array([11, 12])]
>>>
>>> np.array_split(a, [3, 7, 9])
[array([0, 1, 2]), array([3, 4, 5, 6]), array([7, 8]), array([ 9, 10, 11, 12])]
>>>
>>>
>>> b = np.arange(25).reshape(5, 5)
>>> b
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19],
[20, 21, 22, 23, 24]])
>>>
>>> np.array_split(b, 2)
[array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]]),
array([[15, 16, 17, 18, 19],
[20, 21, 22, 23, 24]])]
>>>
>>> np.array_split(b, 3)
[array([[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]]),
array([[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19]]),
array([[20, 21, 22, 23, 24]])]
>>>
>>> np.array_split(b, 2, axis = 1)
[array([[ 0, 1, 2],
[ 5, 6, 7],
[10, 11, 12],
[15, 16, 17],
[20, 21, 22]]),
array([[ 3, 4],
[ 8, 9],
[13, 14],
[18, 19],
[23, 24]])]
>>>
>>> np.array_split(b, 3, axis = 1)
[array([[ 0, 1],
[ 5, 6],
[10, 11],
[15, 16],
[20, 21]]),
array([[ 2, 3],
[ 7, 8],
[12, 13],
[17, 18],
[22, 23]]),
array([[ 4],
[ 9],
[14],
[19],
[24]])]