数组的组合有常用的函数,下面分一下类。
水平组合:hstack、column_stack
垂直组合:vstack、row_stack
水平\垂直组合:concatenate
深度组合:dstack
水平组合就是将两个数组在水平方向上拼接成一个数组
依水平组合来推。
举一个例子:
a ''' array([[0, 1, 2], [3, 4, 5], [6, 7, 8]]) ''' b ''' array([[ 0, 2, 4], [ 6, 8, 10], [12, 14, 16]]) ''' hstack((a,b)) ''' array([[[ 0, 0], [ 1, 2], [ 2, 4]], [[ 3, 6], [ 4, 8], [ 5, 10]], [[ 6, 12], [ 7, 14], [ 8, 16]]]) '''
水平分割:hsplit
垂直分割:vsplit
深度分割:dsplit
就是在水平方向上分割,
a = arange(9).reshape(3,3) #实现将a在水平方向上,分割成三个相同大小的数组 hsplit(a,3) ''' [array([[0], [3], [6]]), array([[1], [4], [7]]), array([[2], [5], [8]])] '''就是在竖直方向上分割
vsplit(a,3) #实现将a在竖直方向上分割成大小相同的三个数组 ''' [array([[0, 1, 2]]), array([[3, 4, 5]]), array([[6, 7, 8]])] '''就是在深度方向上分割
t = arange(24).reshape((2,3,4)) ''' t: array([[[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]], [[12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23]]]) ''' dsplit(t,2) #如果要进行深度分割,数组的维度必须是3维以及3维以上 ''' [array([[[ 0, 1], [ 4, 5], [ 8, 9]], [[12, 13], [16, 17], [20, 21]]]), array([[[ 2, 3], [ 6, 7], [10, 11]], [[14, 15], [18, 19], [22, 23]]])] '''