dpnp.unstack

dpnp.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.

For full documentation refer to numpy.unstack.

Parameters:
  • x ({dpnp.ndarray, usm_ndarray}) -- The array to be unstacked.

  • axis (int, optional) -- Axis along which the array will be split. Default: 0.

Returns:

unstacked -- The unstacked arrays.

Return type:

tuple of dpnp.ndarray

See also

dpnp.stack

Join a sequence of arrays along a new axis.

dpnp.concatenate

Join a sequence of arrays along an existing axis.

dpnp.block

Assemble an ndarray from nested lists of blocks.

dpnp.split

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

Notes

dpnp.unstack serves as the reverse operation of dpnp.stack, i.e., dpnp.stack(dpnp.unstack(x, axis=axis), axis=axis) == x.

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

Examples

>>> import dpnp as np
>>> 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)
array(True)