np.concatenate是一个将数组拼接起来的函数,具体怎么拼接,可以看一下一维和二维的例子,具体高维的直推就行了。

一、一维数组

  1. import numpy as np
  2. a = np.array([1,2,3])
  3. b = np.array([11,22,33])
  4. jointArray = np.concatenate((a, b), axis=0) # 按数组的第一维进行拼接
  5. print('a=', a)
  6. print('b=', b)
  7. print('jointArray=', jointArray)

对于一维数组,只有一个拼接方向
image.png
图1. 一维数组的拼接

二、二维数组

2.1 连接第一维

np.concatenate((a1, a2), axis = 0);
例子:

  1. import numpy as np
  2. a = np.array([[1, 2], [3, 4]])
  3. b = np.array([[5, 6]])
  4. jointArray = np.concatenate((a, b), axis=0) # axis = 0第一维拼接
  5. print('a=', a)
  6. print('b=', b)
  7. print('jointArray=', jointArray)

a= [[1 2] [3 4]] b= [[5 6]] jointArray = [[1 2] [3 4]

  1. [5 6]]

image.png
注意:在Python中,[1, 2][[1, 2]]是有区别的,可以看一下:

  1. import numpy as np
  2. b = np.array([[1, 2]])
  3. c = np.array([1, 2])
  4. print(b.shape)
  5. print(c.shape)

(1, 2)

(2,)

2.2 连接第二维

  1. import numpy as np
  2. a = np.array([[1, 2], [3, 4]])
  3. b = np.array([[5, 6]])
  4. jointArray = np.concatenate((a, b.T), axis=1) # 要将行向量b转置为列向量
  5. print('a=', a)
  6. print('b=', b)
  7. print('jointArray=', jointArray)

a= [[1 2]

  1. [3 4]]

b= [[5 6]]

jointArray= [[1 2 5]

  1. [3 4 6]]

三、np.contenate降维

两个数组是进行拼接,如果只有一个数组a的话就是用来降维的,看一下例子:

  1. import numpy as np
  2. a = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]])
  3. b = np.concatenate(a, axis=0)
  4. c = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
  5. d = np.concatenate(c, axis=0)
  6. print('a =', a.shape)
  7. print('b =', b.shape)
  8. print('c =', c.shape)
  9. print('d =', d.shape)

a = (3, 2, 2)

b = (6, 2)

c = (2, 5)

d = (10,)