首先我们构造一下数据,这是一个(2, 3, 4)格式的list

>>> array = [[[1,2,3,4],[1,2,3,4],[1,2,3,4]],[[1,2,3,4],[1,2,3,4],[1,2,3,4]]]

我们把每个数字用一个方块表示,那么这个list就相当于这样的一堆方块.

我们用axis=0看一下shape,默认情况axis就是等于0的

>>> a = np.stack(array, axis=0)
>>> a.shape
(2, 3, 4)
>>> a
array([[[1, 2, 3, 4],
        [1, 2, 3, 4],
        [1, 2, 3, 4]],

       [[1, 2, 3, 4],
        [1, 2, 3, 4],
        [1, 2, 3, 4]]])

我们发现,当axis=0的时候,list和生成的矩阵是一样的,相当于将这些方块分成了三组,先在厚度方向分成两组,然后垂直方向分成3组,最后4个块一组

我们再试试axis=1

>>> b = np.stack(array, axis=1)
>>> b.shape
(3, 2, 4)
>>> b
array([[[1, 2, 3, 4],
        [1, 2, 3, 4]],

       [[1, 2, 3, 4],
        [1, 2, 3, 4]],

       [[1, 2, 3, 4],
        [1, 2, 3, 4]]])

和上一个类似,只不过这次是先在垂直方向分成3组,然后再厚度方向分成两组

再来看看axis=2

>>> c = np.stack(array, axis=2)
>>> c.shape
(3, 4, 2)
>>> c
array([[[1, 1],
        [2, 2],
        [3, 3],
        [4, 4]],

       [[1, 1],
        [2, 2],
        [3, 3],
        [4, 4]],

       [[1, 1],
        [2, 2],
        [3, 3],
        [4, 4]]])

先在垂直方向分成3组,然后在水平方向分成4组,最后2个为一组

posted @ 2018-05-12 11:04:38
评论加载中...

发表评论