numpy数组的合并方法

Python中numpy数组的合并有很多方法,如

np.append() 
np.concatenate() 
np.stack() 
np.hstack() 
np.vstack() 
np.dstack() 
其中最泛用的是第一个和第二个。第一个可读性好,比较灵活,但是占内存大。第二个则没有内存占用大的问题。

假设有两个数组a,b分别为:

>>> a
array([0, 1, 2],
       [3, 4, 5],
       [6, 7, 8])
>>> b = a*2
>>> b
array([ 0, 2, 4],
       [ 6, 8, 10],
       [12, 14, 16])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

1、水平组合

>>> np.hstack((a,b))
array([ 0, 1, 2, 0, 2, 4],
       [ 3, 4, 5, 6, 8, 10],
       [ 6, 7, 8, 12, 14, 16])

>>> np.concatenate((a,b),axis=1)
array([ 0, 1, 2, 0, 2, 4],
       [ 3, 4, 5, 6, 8, 10],
       [ 6, 7, 8, 12, 14, 16])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

2、垂直组合

>>> np.vstack((a,b))
array([ 0, 1, 2],
       [ 3, 4, 5],
       [ 6, 7, 8],
       [ 0, 2, 4],
       [ 6, 8, 10],
       [12, 14, 16])

>>> np.concatenate((a,b),axis=0)
array([ 0, 1, 2],
       [ 3, 4, 5],
       [ 6, 7, 8],
       [ 0, 2, 4],
       [ 6, 8, 10],
       [12, 14, 16])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

3、深度组合:沿着纵轴方向组合

>>> np.dstack((a,b))
array([[ 0, 0],
        [ 1, 2],
        [ 2, 4],

       [ 3, 6],
        [ 4, 8],
        [ 5, 10],

       [ 6, 12],
        [ 7, 14],
        [ 8, 16]])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

4、列组合column_stack()

一维数组:按列方向组合 
二维数组:同hstack一样

5、行组合row_stack()

以为数组:按行方向组合 
二维数组:和vstack一样

6、“==”用来比较两个数组

>>> a==b
array([ True, False, False],
       [False, False, False],
       [False, False, False], dtype=bool)
#True那个因为都是0

猜你喜欢

转载自blog.csdn.net/qq_37053885/article/details/80770194