常用组合函数分类
数组的组合有常用的函数,下面分一下类。
水平组合: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
扫描二维码关注公众号,回复:
2495250 查看本文章
垂直分割: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]]])]
'''