写在前面
我们知道axis这个东西经常出现在numpy的sum、argsort等一系列有关于数组的操作中,numpy中的轴axis是很重要的,许多numpy的操作根据axis的取值不同,作出的操作也不相同。可以说,axis让numpy的多维数组变的更加灵活,但也让numpy变得越发难以理解。因此,弄清楚axis的作用显得尤为重要。作为一个很基本同时很重要的概念,博主觉得很有必要详细深入了解一下这一名词。
下面把博主的一些发现分享给大家。
简单了解axis
axis 中文翻译指“轴”、“枢轴”。我们可以看一下英文官网的解释:

NumPy 的主要对象是同构多维数组。 它是一个元素表(通常是数字),所有类型都相同,由非负整数元组索引。 在 NumPy 中,维度称为轴。
例如,3D 空间 [1, 2, 1] 中一个点的坐标有一个轴。 该轴有 3 个元素,因此我们说它的长度为 3。在下图中的示例中,该数组有 2 个轴。 第一个轴的长度为 2,第二个轴的长度为 3。
[[1., 0., 0.],
[0., 1., 2.]]
实际上这个维度称为轴并不是很好理解,必须说明这里的轴维度和我们数学物理上面的是有很大区别的。
与数学物理方面的区别
我们现随机建立一个3×3的数组。
>>> import numpy as np
>>> np.random.rand(3, 3)
array([[0.14828241, 0.67698515, 0.22729984],
[0.78760285, 0.71820171, 0.43459394],
[0.85447318, 0.72708047, 0.56316259]])
该矩阵由于形状是3×3的,所以我们在线性代数里面认为这个矩阵维度是三(秩为三),但是在numpy的数组中,这个array的维数只有2,分别有axis=0,axis=1这两个轴,而axis=0的轴长度为3,axis=1的轴长度也为3.所以这里我们格外注意一下。
进一步理解
我们进行一下有关axis的操作,例如求和:
>>> c = np.arange(9).reshape(3,3)
>>> c
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
>>> c.sum(axis=0)
array([ 9, 12, 15])
>>> c.sum(axis=1)
array([ 3, 12,

本文深入解析NumPy中的轴概念,对比数学物理维度,阐述如何通过axis参数实现数组的行、列求和、排序和argsort等操作,适用于高级numpy数组处理。
最低0.47元/天 解锁文章
421

被折叠的 条评论
为什么被折叠?



