本文主要是介绍numpy中的维度,以及维度方面的常见操作,例如:np.concatenate()等
关于这些方面,已经有一些优秀的博文。例如:
1. Numpy中stack(),hstack(),vstack()函数详解
2. numpy库数组拼接np.concatenate官方文档详解与实例
ndarray维度
以下是直接在jupyter notebook中运行的结果。
np.concatenate函数
np.concatenate函数是一个比较常见的函数。主要功能是对多个数组进行拼接。
函数有两点要求:
- 相同维度的数组,
- 除了axis外,数组的其余维度对应相等。
首先来理解相同维度的数组。通过以下这个例子来说明。
上面两个数组就是维度不一样。up是两个维度,down是一个维度,所以导致出现了问题。如果我们将down增加一个维度,再进行拼接,就能成功。看下面的例子。
说完维度, 再来说一说函数中的axis参数。axis可以等于0,可以等于1,也可以等于更大的整数。但是它代表的意义,却应该结合需要concat的两个数组来看。函数要求,除了需要concat的维度数可以不同,其余维度数必须相同。什么意思呢?
如果我们创建了两个数组,分别是二维的。up数组,大小为(2,3)。down数组,大小为(4,3)。那么,我们可以将数组沿着axis=0来进行concat。而axis=1则不行。
axis=0,在此例中表示,up数组的第一维度,为2;down数组的第一维度,为4。除此之外,两个数组的另外维度分别都为3,满足要求。
axis=1,在此例中表示,up数组的第二维度,为3;down数组的第二维度,为3。除此之外,两个数组的维度分别为2和4,不相等,也就不满足要求了。
至此,解释完了np.concatenate()中两个参数的要求:一是相同维度的数组,二是除了axis外,数组的其余维度对应相等。实际上,np.vstack()以及np.hstack()的功能和作用与np.concatenate()相似,可以类推。