numpy.hsplit

numpy.hsplit(a, indices_or_sections)

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

Вне зависимости от количества осей массива a функция hsplit разделит его вдоль второй оси (ось с индексом 1). Данная функция полностью эквивалентна функции split с параметром axis = 1.

Параметры:
a - массив NumPy
Массив, который необходимо разбить на подмассивы.
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, dsplit, vsplit

Замечание

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


Примеры

>>> import numpy as np
>>> 
>>> a = np.arange(8)
>>> a
array([0, 1, 2, 3, 4, 5, 6, 7])
>>> 
>>> np.hsplit(a, 2)
[array([0, 1, 2, 3]), array([4, 5, 6, 7])]
>>> 
>>> np.hsplit(a, [1, 7])
[array([0]), array([1, 2, 3, 4, 5, 6]), array([7])]
>>> 
>>> 
>>> b = np.arange(16).reshape(2, 8)
>>> b
array([[ 0,  1,  2,  3,  4,  5,  6,  7],
       [ 8,  9, 10, 11, 12, 13, 14, 15]])
>>> 
>>> np.hsplit(b, 2)
[array([[ 0,  1,  2,  3],
       [ 8,  9, 10, 11]]),
array([[ 4,  5,  6,  7],
       [12, 13, 14, 15]])]
>>> 
>>> np.hsplit(b, [1, 7])
[array([[0],
       [8]]),
array([[ 1,  2,  3,  4,  5,  6],
       [ 9, 10, 11, 12, 13, 14]]),
array([[ 7],
       [15]])]
>>> 
>>> 
>>> c = np.arange(16).reshape(2, 4, 2)
>>> c
array([[[ 0,  1],
        [ 2,  3],
        [ 4,  5],
        [ 6,  7]],

       [[ 8,  9],
        [10, 11],
        [12, 13],
        [14, 15]]])
>>> 
>>> np.hsplit(c, 2)
[array([[[ 0,  1],
        [ 2,  3]],

       [[ 8,  9],
        [10, 11]]]),
array([[[ 4,  5],
        [ 6,  7]],

       [[12, 13],
        [14, 15]]])]
>>> 
>>> np.hsplit(c, [1, 3])
[array([[[0, 1]],

       [[8, 9]]]),
array([[[ 2,  3],
        [ 4,  5]],

       [[10, 11],
        [12, 13]]]),
array([[[ 6,  7]],

       [[14, 15]]])]