数组组合

(同维)数组组合主要有三种形式:垂直组合,水平组合,深度组合

我们先生成两个数组 a,b

In [1]: import numpy as np
In [2]: a= np.arange(11,20).reshape(3,3)
In [3]: a
Out[3]: 
array([[11, 12, 13],
       [14, 15, 16],
       [17, 18, 19]])

In [4]: b=np.arange(11,20).reshape(3,3)
In [5]: b
Out[5]: 
array([[21, 22, 23],
       [24, 25, 26],
       [27, 28, 29]])

1)垂直组合
numpy.vstack(a,b)

numpy.concartenate((a,b),axis=0)

axis命名参数表示轴向,0表示第一维,1表示第二维,以此类推

In [6]: np.vstack((a,b))
Out[6]: 
array([[11, 12, 13],
       [14, 15, 16],
       [17, 18, 19],
       [21, 22, 23],
       [24, 25, 26],
       [27, 28, 29]])
In [7]: np.concatenate((a,b),axis=0)
Out[7]: 
array([[11, 12, 13],
       [14, 15, 16],
       [17, 18, 19],
       [21, 22, 23],
       [24, 25, 26],
       [27, 28, 29]])
2)水平组合
numpy.hstack((a,b))

numpy.concatenate((a,b),axis=1)

In [8]: np.hstack((a,b))
Out[8]: 
array([[11, 12, 13, 21, 22, 23],
       [14, 15, 16, 24, 25, 26],
       [17, 18, 19, 27, 28, 29]])
In [9]: np.concatenate((a,b),axis=1)
Out[9]: 
array([[11, 12, 13, 21, 22, 23],
       [14, 15, 16, 24, 25, 26],
       [17, 18, 19, 27, 28, 29]])
3)深度组合

numpy.dstack((a,b))

In [10]: c = np.dstack((a,b))

In [11]: c
Out[11]: 
array([[[11, 21],
        [12, 22],
        [13, 23]],

       [[14, 24],
        [15, 25],
        [16, 26]],

       [[17, 27],
        [18, 28],
        [19, 29]]])
记住,numpy.concatenate((a,b),axis=2)是错误的用法
In [12]: c=np.concatenate((a,b),axis=2)
---------------------------------------------------------------------------
AxisError                                 Traceback (most recent call last)
<ipython-input-16-73be7a9decd1> in <module>()
----> 1 c=np.concatenate((a,b),axis=2)

AxisError: axis 2 is out of bounds for array of dimension 2

猜你喜欢

转载自blog.csdn.net/weixin_38736140/article/details/79803070
今日推荐