numpy.unstack#

numpy.unstack(x, /, *, ось=0)[источник]#

Разделение массива на последовательность массивов вдоль заданной оси.

The axis Параметр определяет размерность, по которой массив будет разделен. Например, если axis=0 (по умолчанию) это будет первое измерение, и если axis=-1 это будет последнее измерение.

Результат — это кортеж массивов, разделённых вдоль axis.

Новое в версии 2.1.0.

Параметры:
xndarray

Массив для развертывания.

осьint, необязательный

Ось, вдоль которой массив будет разделен. По умолчанию: 0.

Возвращает:
развернутыйкортеж ndarrays

Неуложенные массивы.

Смотрите также

stack

Объедините последовательность массивов вдоль новой оси.

concatenate

Объединить последовательность массивов вдоль существующей оси.

block

Собрать n-мерный массив из вложенных списков блоков.

split

Разделить массив на список из нескольких подмассивов одинакового размера.

Примечания

unstack служит обратной операцией для stack, т.е., stack(unstack(x, axis=axis), axis=axis) == x.

Эта функция эквивалентна tuple(np.moveaxis(x, axis, 0)), поскольку итерация по массиву происходит вдоль первой оси.

Примеры

>>> arr = np.arange(24).reshape((2, 3, 4))
>>> np.unstack(arr)
(array([[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]]),
 array([[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]))
>>> np.unstack(arr, axis=1)
(array([[ 0,  1,  2,  3],
        [12, 13, 14, 15]]),
 array([[ 4,  5,  6,  7],
        [16, 17, 18, 19]]),
 array([[ 8,  9, 10, 11],
        [20, 21, 22, 23]]))
>>> arr2 = np.stack(np.unstack(arr, axis=1), axis=1)
>>> arr2.shape
(2, 3, 4)
>>> np.all(arr == arr2)
np.True_