numpy.unstack#

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

沿给定轴将数组拆分为一系列数组。

axis 参数指定将数组拆分的维度。例如,如果 `axis=0`(默认值),则为第一个维度;如果 `axis=-1`,则为最后一个维度。

结果是沿 `axis` 拆分的数组元组。

新版本: 2.1.0。

参数:
xndarray

待解包的数组。

axisint, optional

将数组拆分的轴。默认值:`0`。

返回:
unstackedndarray 元组

解包后的数组。

另请参阅

stack

沿新轴连接数组序列。

concatenate

沿现有轴连接数组序列。

block

从嵌套块列表中组装 ndarray。

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_