numpy.unstack — NumPy v2.6.dev0 Manual

numpy.unstack(x, /, *, axis=0)

[source]

#

Split an array into a sequence of arrays along the given axis.

The axis parameter specifies the dimension along which the array will be split. For example, if axis=0 (the default) it will be the first dimension and if axis=-1 it will be the last dimension.

The result is a tuple of arrays split along axis.

Added in version 2.1.0.

Parameters:xndarrayThe array to be unstacked.

axisint, optionalAxis along which the array will be split. Default: 0.

Returns:unstackedtuple of ndarraysThe unstacked arrays.

See also

stack

Join a sequence of arrays along a new axis.

concatenate

Join a sequence of arrays along an existing axis.

block

Assemble an nd-array from nested lists of blocks.

split

Split array into a list of multiple sub-arrays of equal size.

Notes

unstack serves as the reverse operation of

stack

, i.e., stack(unstack(x,axis=axis),axis=axis)==x.

This function is equivalent to tuple(np.moveaxis(x,axis,0)), since iterating on an array iterates along the first axis.

Examples

>>> 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_