1、利用np.concatenate、np.vstack、np.hstack进行数组拼接
np.concatenate([x, y], axis=0)
将x,y两个数组拼接在一起,返回numpy数组,x, y的类型可以是列表、元组、ndarray等等都可以,也可以有两个以上的列表进行拼接。axis是拼接维度,若axis不等于0的话x,y必须是多维数组。
例子:
grid = np.array([[1, 2, 3], [4, 5, 6]])
np.concatenate([grid, grid, grid], axis=0)
#array([[1, 2, 3],
# [4, 5, 6],
# [1, 2, 3],
# [4, 5, 6],
# [1, 2, 3],
# [4, 5, 6]])
grid = np.array([[1, 2, 3], [4, 5, 6]])
np.concatenate([grid, grid, grid], axis=1)
#array([[1, 2, 3, 1, 2, 3, 1, 2, 3],
# [4, 5, 6, 4, 5, 6, 4, 5, 6]])
np.vstack() #同np.concatenate()中axis=0
np.hstack() #同np.concatenate()中axis=1
np.dstack() #同np.concatenate()中axis=2
2、利用np.split、np.hsplit、np.vsplit进行数组分裂
x1, x2, x3 = np.split(x, [3, 6], axis=0)
三个参数,一个参数是数组,一个参数是一个索引列表,列表中记录的是分裂点的位置。如上例中2个分裂点,分裂出3个子数组。axis指从哪个轴上分裂,默认为0.
例子:
grid = np.array([[1, 2, 3], [4, 5, 6]])
x, y = np.split(grid, [1], axis=0)
x
y
#array([[1, 2, 3]])
#array([[4, 5, 6]])
grid = np.array([[1, 2, 3], [4, 5, 6]])
x, y = np.split(grid, [1], axis=0)
x
y
#array([[1],
# [4]])
#array([[2, 3],
# [5, 6]])
np.vsplit() #同np.split()中axis=0
np.hsplit() #同np.split()中axis=1
np.dsplit() #同np.split()中axis=2