Numpy数组拼接和分裂
将多个数组合并成一个,或将一个数组分裂成多个。
数组拼接
concatenate([a1, a2, ...], axis=0, out=None) #默认沿axis = 0轴拼接,也可设置沿axis = 1轴拼接
hstack([a1, a2, ...]) #默认沿axis = 0轴拼接
vstack([a1, a2, ...]) #默认沿axis = 1轴拼接
In [41]: grid = np.array([[1,2,3],[4,5,6]])
#沿0轴合并
In [42]: np.concatenate([grid,grid])
Out[42]:
array([[1, 2, 3],
[4, 5, 6],
[1, 2, 3],
[4, 5, 6]])
In [45]: np.vstack([grid,grid])
Out[45]:
array([[1, 2, 3],
[4, 5, 6],
[1, 2, 3],
[4, 5, 6]])
#沿1轴合并
In [43]: np.concatenate([grid,grid],axis=1)
Out[43]:
array([[1, 2, 3, 1, 2, 3],
[4, 5, 6, 4, 5, 6]])
In [44]: np.hstack([grid,grid])
Out[44]:
array([[1, 2, 3, 1, 2, 3],
[4, 5, 6, 4, 5, 6]])
数组分裂
np.split(ary, indices_or_sections, axis=0) #默认沿axis = 0轴分割,也可设置沿axis = 1轴分割
hsplit([a1, a2, ...]) #默认沿axis = 0轴分割
vplit([a1, a2, ...]) #默认沿axis = 1轴分割
In [54]: grid = np.arange(16).reshape((4,4))
In [55]: grid
Out[55]:
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
#沿0轴分割
In [56]: upper,lower = np.split(grid,[3])
In [57]: upper
Out[57]:
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
In [58]: lower
Out[58]: array([[12, 13, 14, 15]])
In [59]: upper,lower = np.vsplit(grid,[3])
In [60]: upper
Out[60]:
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
In [61]: lower
Out[61]: array([[12, 13, 14, 15]])
#沿1轴分割
In [62]: left,right = np.split(grid,[2],axis=1)
In [63]: left
Out[63]:
array([[ 0, 1],
[ 4, 5],
[ 8, 9],
[12, 13]])
In [64]: right
Out[64]:
array([[ 2, 3],
[ 6, 7],
[10, 11],
[14, 15]])
In [65]: left,right = np.hsplit(grid,[2])
In [66]: left
Out[66]:
array([[ 0, 1],
[ 4, 5],
[ 8, 9],
[12, 13]])
In [67]: right
Out[67]:
array([[ 2, 3],
[ 6, 7],
[10, 11],
[14, 15]])