numpy.unstack#

numpy.unstack(x, /, *, axis=0)[原始碼]#

沿著給定軸將陣列分割成陣列序列。

axis 參數指定陣列將被分割的維度。例如,如果 axis=0 (預設值) 它將是第一個維度,如果 axis=-1 它將是最後一個維度。

結果是沿著 axis 分割的陣列元組。

版本 2.1.0 新增。

參數:
xndarray

要解堆疊的陣列。

axisint, optional

陣列將被分割的軸。預設值: 0

返回:
unstackedndarray 元組

解堆疊後的陣列。

參見

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_