numpy.unstack#

numpy.unstack(x,/,*,axis=0)[source]#

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

Theaxis parameter specifies the dimension along which the array willbe split. For example, ifaxis=0 (the default) it will be the firstdimension and ifaxis=-1 it will be the last dimension.

The result is a tuple of arrays split alongaxis.

New in version 2.1.0.

Parameters:
xndarray

The array to be unstacked.

axisint, optional

Axis along which the array will be split. Default:0.

Returns:
unstackedtuple of ndarrays

The 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 ofstack, i.e.,stack(unstack(x,axis=axis),axis=axis)==x.

This function is equivalent totuple(np.moveaxis(x,axis,0)), sinceiterating 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_
On this page