在numpy中,数组可以有多个维度(或轴)。每个轴代表数据的一个方向。对于一个n维数组,它有n个轴,这些轴是从0开始编号的:
axis=0表示第一个维度(最外层)axis=1表示第二个维度- 以此类推...
轴的概念
当你对一个数组进行操作时(例如求和、平均值等),你可以指定沿着哪个轴进行操作。如果你不指定轴,则操作会应用于整个数组的所有元素。
解释“设axis=i, 则numpy沿着第i个下标变化的方向进行操作”
这句话的意思是说,当你设置axis=i时,numpy会在第i个维度上进行操作,即沿着该维度的变化方向进行操作。换句话说,numpy会对该维度上的所有元素执行指定的操作,而其他维度保持不变。
具体例子说明
三维数组为例:
arr = np.array([[[ 0, 1],
[ 2, 3],
[ 4, 5],
[ 6, 7]],
[[ 8, 9],
[10, 11],
[12, 13],
[14, 15]]])这个数组的形状是 (2, 4, 2),表示它有两层(第一维度),每层有四行(第二维度),每行有两个元素(第三维度)。
不同轴的操作
axis=0:沿着最外层维度(第一维度)进行操作。
- 这意味着我们会将两个子数组(页)对应位置的值相加。
- 结果是一个形状为
(4, 2)的数组:
array([[ 8, 10],
[12, 14],
[16, 18],
[20, 22]])axis=1:沿着中间维度(第二维度)进行操作。
- 这意味着我们会将每一层内每一列的值相加。
- 结果是一个形状为
(2, 2)的数组:
array([[12, 16],
[44, 48]])axis=2:沿着最内层维度(第三维度)进行操作。
- 这意味着我们会将每一层内每一个小数组内的值相加。
- 结果是一个形状为
(2, 4)的数组:
array([[ 1, 5, 9, 13],
[17, 21, 25, 29]])总结
- axis=0:沿着第一个维度(最外层)进行操作,即对每一列的元素进行操作。
- axis=1:沿着第二个维度(中间层)进行操作,即对每一行的元素进行操作。
- axis=2:沿着第三个维度(最内层)进行操作,即对每个小数组内的元素进行操作。
关键点:当你设置axis=i时,numpy会沿着第i个维度进行操作,这意味着在这个维度上的所有元素会被聚合在一起进行操作(如求和、平均等),而其他维度保持不变。这适用于任何维度的数组,不仅仅是二维数组。通过这种方式,你可以灵活地控制数据如何被处理和聚合。
到此这篇关于numpy中axis轴问题记录小结的文章就介绍到这了,更多相关numpy中axis轴内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论