Numpy中dim,shape,rank,dimension和axis的区别
在本文中,我们将介绍Numpy中dim,shape,rank,dimension和axis之间的区别,这些概念在数组操作中经常出现,对于理解numpy数组的构造、操作和变换至关重要。
阅读更多:Numpy 教程
数组的rank
数组的rank指的是数组的维度数量,也可以称为“秩”。使用Numpy创建数组时,指定数组的rank即可得到多维数组。例如,创建一个二维数组:
输出:
这说明该数组的rank为2,即为二维数组。
数组的shape
数组的shape指的是数组在各个维度上的大小。例如,一个二维数组的shape为(m,n),其中m是行数,n是列数。使用Numpy的shape方法可以获取数组的shape,例如:
输出:
这说明该数组的shape为(2,3),即为2行3列的二维数组。
数组的dimension
数组的dimension(维度)和rank(秩)实际上是相同的概念,即指的是多维数组的维度数量。使用Numpy的ndim方法可以获取数组的dimension,例如:
输出:
这和上面rank的例子是相同的。
数组的axis
数组的axis指的是数组的维度方向,也可以称为“轴”。针对一个二维数组,它有两个轴,axis=0代表行方向,axis=1代表列方向。例如,对于下面的二维数组:
我们可以使用 sum() 方法来沿着某个轴求和,例如:
输出:
这说明对于该数组而言,axis=0代表进行行之间的操作,将同一列中的数加起来得到[5, 7, 9]。同样地,在使用几乎所有的数组函数的时候,都可以指定axis参数来表示将会在哪个轴上操作。
数组的dim和shape之间的差异
dim(dimension,维数)和shape(形状)两者之间的差异主要体现在多维数组的概念上。dim指的是多维数组的数量,而shape指的是多维数组每个维度的大小。例如一个四维数组的完整表示为:(dim1,dim2,dim3,dim4)。其中,dim1、dim2、dim3、dim4分别表示第一维、第二维、第三维和第四维的大小。
不同维度之间的关系可以按照如下方式理解和表示:
- rank=3的数组,其维度变量分别为a、b、c。故表示为(a,b,c)。
- 第一维长度为a,第二维长度为b,第三维长度为c。
例如对于一个形如这样子的三维数组:
它的rank为3,dimension为3,shape为(2,2,3)。其中,第一维有两个元素,第二维有两个元素,第三维有三个元素,故它的shape为(2,2,3)。
总结
简单总结一下,Numpy中dim,shape,rank,dimension和axis都是与数组操作和变换相关的概念。其中,rank和dimension指的是数组的维度数量,shape指的是数组的各个维度的大小,axis则是指的数组的各维度的方向。在使用Numpy进行数组操作时,熟练掌握这些概念,能够更加高效地进行数组操作和变换。