Numpy学习笔记之数组拼接大法

不积硅步,无以至千里,不积小流,无以成江海。

1、np.concatenate()

  • 首先说np.concatenate()方法,对numpy array进行拼接的函数,使用这个函数需要注意的一点是,参数axis只能指定为已经存在的维度,不然会报错,使用该方法的特点是数组拼接前后的不会增加新的维度,先看一个一维的简单例子:
np.concatenate()方法的一维数组例子
  • 接着看一个二维的例子,就会对这个方法以及参数axis的用法有更好的理解。
np.concatenate()方法的二维数组例子

2、np.stack()

  • np.stack()与np.concatenate()方法的不同之处在于,np.concatenate()方法的axis参数只能指定已经存在的维度,而np.satck()方法中axis参数没有这个限制,因为np.stack()方法会产生出新的维度,这句话怎么理解呢?看例子:a和b本来都是一维的numpy数组,但是经过stack方法之后就变为了二维数组,所以axis参数就可以选择二维中的任一维,而不是只能设置为跟原一维数组一样的维度。

3、np.hstack() vs np.vstack()

  • np.hstack()方法直观的理解就是在horizontal(水平)方向上进行堆叠,np.vstack()就是在vertical(垂直)方向上进行堆叠。还是跟上面演示np.stack()方法一样的例子,看看np.hstack()方法和np.vstack()方法的返回结果,这两个方法没有axis参数
  • 再来看看这两个方法在二维数组上的返回结果

其实理解上述所有方法的核心点在于对于axis参数的理解,数组的各个维度代表的是什么,虽然上述方法都比较基础,但是对于初学者来说,要完全掌握还是需要稍微花些时间,加油⛽️。