numpy.vsplit

numpy.vsplit(a, indices_or_sections)

Функция vsplit() разбивает массив по вертикали.

Если массив имеет размерность равную или большую 2 то vsplit разделит его вдоль первой оси. Данная функция полностью эквивалентна функции split с параметром axis = 0.

Параметры:
a - массив NumPy
Массив, который необходимо разбить на подмассивы. Если размерность данного массива меньше 2, то будет возбуждено исключение ValueError
indices_or_sections - целое число или одномерный массив

Если в качестве этого параметра указано целое число N, то массив будет разделен на N равных частей вдоль указанной в параметре axis оси.

Если параметр indices_or_sections является одномерным массивом отсортированных по возрастанию целых чисел, то вдоль указанной оси массив будет разбит на соответствующие указанным числам промежутки. Например, если указан массив [2,4,7], то это будет соответствовать промежуткам [:2], [2:4], [4:7], [7:].

Если некоторое число в одномерном массиве параметра indices_or_sections превышает размер массива вдоль указанной оси, то будет возвращен пустой массив.

Возвращает:
list of ndarrays - список массивов NumPy
Список подмассивов исходного массива a.
Смотрите так же: split, array_split, hsplit, dsplit

Замечание

В случае если параметр indices_or_sections равен числу, которое не делит нацело длинну первой оси или превышает размер массива вдоль первой оси, то будет возбуждено исключение ValueError.



Примеры

>>> import numpy as np
>>> 
>>> a = np.arange(8).reshape(4, 2)
>>> a
array([[0, 1],
       [2, 3],
       [4, 5],
       [6, 7]])
>>> 
>>> np.vsplit(a, 2)
[array([[0, 1],
       [2, 3]]), array([[4, 5],
       [6, 7]])]
>>> 
>>> np.vsplit(a, [1, 3])
[array([[0, 1]]), array([[2, 3],
       [4, 5]]), array([[6, 7]])]
>>> 
>>> 
>>> b = np.arange(36).reshape(6, 2, 3)
>>> 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, 25, 26],
        [27, 28, 29]],

       [[30, 31, 32],
        [33, 34, 35]]])
>>> 
>>> np.vsplit(b, 2)
[array([[[ 0,  1,  2],
        [ 3,  4,  5]],

       [[ 6,  7,  8],
        [ 9, 10, 11]],

       [[12, 13, 14],
        [15, 16, 17]]]),
array([[[18, 19, 20],
        [21, 22, 23]],

       [[24, 25, 26],
        [27, 28, 29]],

       [[30, 31, 32],
        [33, 34, 35]]])]
>>> 
>>> np.vsplit(b, [1, 5])
[array([[[0, 1, 2],
        [3, 4, 5]]]),
array([[[ 6,  7,  8],
        [ 9, 10, 11]],

       [[12, 13, 14],
        [15, 16, 17]],

       [[18, 19, 20],
        [21, 22, 23]],

       [[24, 25, 26],
        [27, 28, 29]]]),
array([[[30, 31, 32],
        [33, 34, 35]]])]