numpy基础——数组的组合与分割

常用组合函数分类

数组的组合有常用的函数,下面分一下类。

水平组合: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,  1,  2,  0,  2,  4],
       [ 3,  4,  5,  6,  8, 10],
       [ 6,  7,  8, 12, 14, 16]])
'''

​

水平组合就是将两个数组在水平方向上拼接成一个数组

什么是垂直组合?

依水平组合来推。

什么是深度组合?

举一个例子:

​
​
 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]]])
'''

​

​

函数间的等式关系

concatenate((a,b) , axis=1)  => hstack((a,b)) => column_stack((a,b))
concatenate((a,b) , axis=0)  => vstack((a,b)) => row_stack((a,b))

分割常用函数分类

水平分割: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]]])]
'''

猜你喜欢

转载自blog.csdn.net/f156207495/article/details/81137603