Numpy中dim,shape,rank,dimension和axis的区别

Numpy中dim,shape,rank,dimension和axis的区别

在本文中,我们将介绍Numpy中dim,shape,rank,dimension和axis之间的区别,这些概念在数组操作中经常出现,对于理解numpy数组的构造、操作和变换至关重要。

阅读更多:Numpy 教程

数组的rank

数组的rank指的是数组的维度数量,也可以称为“秩”。使用Numpy创建数组时,指定数组的rank即可得到多维数组。例如,创建一个二维数组:

import numpy as np

arr = np.array([[1, 2, 3],
                [4, 5, 6]])

print(arr.ndim)
Python

输出:

2
Python

这说明该数组的rank为2,即为二维数组。

数组的shape

数组的shape指的是数组在各个维度上的大小。例如,一个二维数组的shape为(m,n),其中m是行数,n是列数。使用Numpy的shape方法可以获取数组的shape,例如:

import numpy as np

arr = np.array([[1, 2, 3],
                [4, 5, 6]])

print(arr.shape)
Python

输出:

(2, 3)
Python

这说明该数组的shape为(2,3),即为2行3列的二维数组。

数组的dimension

数组的dimension(维度)和rank(秩)实际上是相同的概念,即指的是多维数组的维度数量。使用Numpy的ndim方法可以获取数组的dimension,例如:

import numpy as np

arr = np.array([[1, 2, 3],
                [4, 5, 6]])

print(arr.ndim)
Python

输出:

2
Python

这和上面rank的例子是相同的。

数组的axis

数组的axis指的是数组的维度方向,也可以称为“轴”。针对一个二维数组,它有两个轴,axis=0代表行方向,axis=1代表列方向。例如,对于下面的二维数组:

import numpy as np

arr = np.array([[1, 2, 3],
                [4, 5, 6]])
Python

我们可以使用 sum() 方法来沿着某个轴求和,例如:

import numpy as np

arr = np.array([[1, 2, 3],
                [4, 5, 6]])

print(arr.sum(axis=0))
Python

输出:

[5, 7, 9]
Python

这说明对于该数组而言,axis=0代表进行行之间的操作,将同一列中的数加起来得到[5, 7, 9]。同样地,在使用几乎所有的数组函数的时候,都可以指定axis参数来表示将会在哪个轴上操作。

数组的dim和shape之间的差异

dim(dimension,维数)和shape(形状)两者之间的差异主要体现在多维数组的概念上。dim指的是多维数组的数量,而shape指的是多维数组每个维度的大小。例如一个四维数组的完整表示为:(dim1,dim2,dim3,dim4)。其中,dim1、dim2、dim3、dim4分别表示第一维、第二维、第三维和第四维的大小。

不同维度之间的关系可以按照如下方式理解和表示:

- rank=3的数组,其维度变量分别为abc。故表示为(abc)。
 - 第一维长度为a,第二维长度为b,第三维长度为c

例如对于一个形如这样子的三维数组:

[[[1, 2, 3],
  [4, 5, 6]],
 [[7, 8, 9],
  [10, 11, 12]]]
Python

它的rank为3,dimension为3,shape为(2,2,3)。其中,第一维有两个元素,第二维有两个元素,第三维有三个元素,故它的shape为(2,2,3)。

总结

简单总结一下,Numpy中dim,shape,rank,dimension和axis都是与数组操作和变换相关的概念。其中,rank和dimension指的是数组的维度数量,shape指的是数组的各个维度的大小,axis则是指的数组的各维度的方向。在使用Numpy进行数组操作时,熟练掌握这些概念,能够更加高效地进行数组操作和变换。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册