numpy.unstack#

numpy.unstack(x, /, *, axis=0)[源代码]#

沿给定轴将数组拆分为数组序列.

axis 参数指定将沿其拆分数组的维度. 例如,如果 axis=0 (默认),则它将是第一个维度,如果 axis=-1 ,它将是最后一个维度.

结果是沿 axis 拆分的数组的元组.

在 2.1.0 版本加入.

参数:
xndarray

要取消堆叠的数组.

axis整数,可选

数组将沿其拆分的轴. 默认值: 0 .

返回:
取消堆叠ndarray的元组

取消堆叠的数组.

参见

stack

沿新轴连接一系列数组.

concatenate

沿现有轴连接一系列数组.

block

从嵌套的块列表中组装一个 nd-array.

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_