np.hstack():水平方向排列数组,行数不变,列数增加。一般用于三维以下的数组。
np.vstack():垂直方向排列数组,列数不变,行数增加。一般用于三维以下的数组。
import numpy as np
a = np.arange(6).reshape(2, 3) # a.shape=(2,3)
b = np.arange(6).reshape(2, 3) # b.shape=(2,3)
c = np.hstack((a, b)) # c.shape=(2,6)
d = np.vstack((a, b)) # d.shape=(4,3)
print('a = ', a)
print('b = ', b)
print('c = ', c)
print('d = ', d)
对于np.hstack(), 水平方向排列(如下图)。最终结果c,行数不变,列数等于二者之和。c行数=a行数=b行数,c列数=a列数+b列数。
对于np.vstack(), 垂直方向排列(如下图)。最终结果d,列数不变,行数等于二者之和。d行数=a行数+b行数,d列数=a列数=b列数。
输出:
a = [[0 1 2]
[3 4 5]]
b = [[0 1 2]
[3 4 5]]
c = [[0 1 2 0 1 2]
[3 4 5 3 4 5]]
d = [[0 1 2]
[3 4 5]
[0 1 2]
[3 4 5]]
import numpy as np
a = np.arange(0, 3) # a.shape=(3,)
b = np.arange(3, 6) # b.shape=(3,)
c = np.hstack((a, b)) # c.shape=(6,)
d = np.vstack((a, b)) # d.shape=(2,3)
print('a = ', a)
print('b = ', b)
print('c = ', c)
print('d = ', d)
对于一维数组而言,我们可以把shape = (3,)看做是shape = (1,3)。对于np.hstack(),实现水平方向的堆叠,行数不变,列数为二者之和;对于np.vstack(),实现垂直方向堆叠,列数不变,行数为二者之和。
输出:
a = [0 1 2]
b = [3 4 5]
c = [0 1 2 3 4 5]
d = [[0 1 2]
[3 4 5]]