用深度学习处理图像时,常常涉及到图像数组的拼接或合并,下面总结python中数组的拼接和合并方法:
python中数组的拼接或合并常常要用到numpy工具包:
1.np.append(arr, values, axis=None):将数组元素进行拼接,axis用于指定方向,axis=0:纵向拼接;axis=1:横向拼接。
import numpy as np
a=[[1,2],
[1,2]]
b=[[1,2],
[1,2]]
s1=np.append(a,b,0)
s11=np.append(a,b,1)
#s2=np.concatenate()
print('s1=',s1)
print('s11=',s11)
s1= [[1 2]
[1 2]
[1 2]
[1 2]]
s11= [[1 2 1 2]
[1 2 1 2]]
2.np.concatenate(a_tuple, axis=0, out=None):将整个数组作为一个元素拼接到另一个数组。
import numpy as np
a=[[1,2],
[1,2]]
b=[[1,2],
[1,2]]
s2=np.concatenate((a,b),0)
s22=np.concatenate((a,b),1)
print('s2=',s2)
print('s22=',s22)
s2= [[1 2]
[1 2]
[1 2]
[1 2]]
s22= [[1 2 1 2]
[1 2 1 2]]
3. np.hstack(tup):水平拼接,沿着行的方向,对列进行拼接:
s3=np.hstack((a,b))
print('s3=',s3)
s3= [[1 2 1 2]
[1 2 1 2]]
4.np.vstack(tup):垂直拼接,沿着列的方向,对行进行拼接:
s4=np.vstack((a,b))
print('s4=',s4)
s4= [[1 2]
[1 2]
[1 2]
[1 2]]
5.np.dstack(tup):深度拼接,沿着第三轴方向,对行和列都进行拼接:
s5=np.dstack((a,b))
print('s5=',s5)
s5= [[[1 1]
[2 2]][[1 1]
[2 2]]]
6.np.column_stack(tup):水平拼接,沿着行的方向,对列进行拼接:
s6=np.column_stack((a,b))
print('s6=',s6)
s6= [[1 2 1 2]
[1 2 1 2]]
7.np.row_stack(tup):垂直拼接,沿着列的方向,对行进行拼接:
s7=np.row_stack((a,b))
print('s7=',s7)
s7= [[1 2]
[1 2]
[1 2]
[1 2]]
8.np.c_(tup):水平拼接,沿着行的方向,对列进行拼接:
s8=np.c_[a,b]
print('s8=',s8)
s8= [[1 2 1 2]
[1 2 1 2]]
9.np.r_(tup):垂直拼接,沿着列的方向,对行进行拼接:
s9=np.r_[a,b]
print('s9=',s9)
s9= [[1 2]
[1 2]
[1 2]
[1 2]]