python3机器学习经典算法与应用之Numpy.array基本操作(二)

合并操作

numpy.concatenate()

使用numpy.concatenate()函数可以将矩阵进行拼接,将拼接的矩阵(或数组)组织成一个列表作为参数传递给concatenate()函数。
下面是一位矩阵的合并操作:
python3机器学习经典算法与应用之Numpy.array基本操作(二)
下面是二维矩阵的合并操作(默认沿着第一维度进行拼接)
python3机器学习经典算法与应用之Numpy.array基本操作(二)
当合并二维矩阵时可以规定沿着哪个维度进行拼接,参数axis用于指定维度,axis=0时沿第一维度(行)拼接,axis=1时沿第二维度(列)拼接。
python3机器学习经典算法与应用之Numpy.array基本操作(二)
不同维度的矩阵或向量不能直接拼接,需要进行处理
方法1:将低维矩阵转换为高维矩阵,这里将z调用reshape()方法,转化为二维矩阵就可以进行拼接了。
python3机器学习经典算法与应用之Numpy.array基本操作(二)方法2:使用numpy.vstack()方法,vstack()方法的容错性更好。这个函数可以智能地判断如何垂直地叠加。其中v代表vertical(垂直的)
python3机器学习经典算法与应用之Numpy.array基本操作(二)
使用numpy.hstack()方法进行水平方向的堆叠。水平方向叠加,行数必须相同。其中h代表horizontal(水平的)
python3机器学习经典算法与应用之Numpy.array基本操作(二)

分隔操作

numpy.split()

split()函数用于在合法索引位置进行分隔,其中分隔的索引位置组织成列表作为参数传给split()函数。
下面示例就是在索引3和7位置进行分隔,其中索引7的元素属于最后一个被分割后的列表。分隔成n个列表需要n-1个索引位置(切割点)。
python3机器学习经典算法与应用之Numpy.array基本操作(二)
对二维数组进行分隔默认对第一维度进行分隔(在行上进行分隔)。若想指定维度进行分隔,同样需要指定轴(维度)axis进行分隔。
下图示例默认使用第一维度(行)进行分隔。
python3机器学习经典算法与应用之Numpy.array基本操作(二)
当指定轴进行分隔后就可以不使用默认维度进行分隔。
下图示例中,axis被指定为1就进行以列为标准进行分隔。
python3机器学习经典算法与应用之Numpy.array基本操作(二)
当然也有更加智能的分割方法。
numpy.vsplit()函数在垂直方向(行,第一维度)进行智能化分割。
python3机器学习经典算法与应用之Numpy.array基本操作(二)
numpy.vsplit()函数在水平方向(列,第二维度)进行智能化分割。
python3机器学习经典算法与应用之Numpy.array基本操作(二)