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

xiaoxiao2021-03-01  30

常用组合函数分类

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

水平组合: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]]])] '''

 

转载请注明原文地址: https://www.6miu.com/read-3650228.html

最新回复(0)