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]])
posted @ 2021-12-17 12:33  溪奇的数据  阅读(72)  评论(0编辑  收藏  举报