numpy 数组中的轴 axis

numpy数组中的轴

numpy有很多维度的数组,一维数组,二维数组,三维数组……n维数组,我们生活的是一个三维世界,因此,在这里就只讨论一维数组,二维数组以及三维数组。对于一维数组,可以将其理解为一条线,二维数组可以将其理解为由线组成的,而三维数组就可以理解成是由面组成的立方体

numpy中的轴与直角坐标系中的轴概念类似,轴是沿着行和列的方向的,在numpy中使用axis作为轴的名称。有过一定编程基础的同学应该清楚,编程语言中的计数是从0开始的,所以,numpy也不例外,对于轴的个数一样从0开始计数

numpy 二维数组

为了方便理解,先说明一下二维数组中轴的分布,因为这里的轴与坐标系很类似。

image-20220317223802662

在二维数组中,有两个轴,分别为0轴和1轴。axis 0是沿着行方向的轴,是竖跨行垂直延伸的轴,也就是0轴;axis 1是沿着列方向的轴,是横跨列水平延伸的轴,也就是1轴。

代码的例子:

image-20220317225138209

看到上图,关于二维数组轴的分布就很清楚了。但还是要说明一下numpy数组的shape属性,首先对于每个轴,都有其对应的元素,其中,axis 0轴对应的是axis 1轴对应的是numpy数组中的shape属性给到的是一个元组类型的结果,其第0个元素代表着axis 0轴分布的行的数量,在这里也就是3;第二个元素则代表着axis 1轴分布的列的数量,在这里也就数4。因此,这里就描述了这个二维数组的形状,为三行四列,也就是(3, 4)

axisnumpy 函数中的使用

numpy的函数中用到了axis参数时,轴就可以视为执行操作的方向。于是为了方便理解,可以将二维数组中的轴看做成是在描述一种方向,在这里,可以看成其所描述的是行和列增长的方向

举一个numpy中求和函数的例子

image-20220317230823535

这里接着上面的来说,这里的函数用法就是将aaxis 0轴的元素进行相加,既然是0轴,那么执行sum操作的方向就是行方向,也就是将每行的元素进行相加,在放入一个新的数组中,最后得到的自然就是一个一维数组。

再举一个numpy数组间进行连接的例子

image-20220317232318651

这里用到的axis参数是 1 轴,也就是沿着列方向的,所以进行连接操作的执行方向就是沿着列方向,在这里很明显可以看到在数组的列方向连接上了b数组。同样所得到的结果就是(3, 8),在列的方向上有连接了4列。

numpy 一维数组

在这里插入图片描述
对于一维数组,只有一个轴,为axis 0轴,也就是0轴,对一维数组的操作就只涉及一个方向了,便不再演示了。

numpy 三维数组

对于三维数组的轴的分布,我一开始也是懵的,在网上看了很多文章,都不是太懂,最后,通过尝试修改代码中的参数,总结出了其分布规律,这里是本人的个人理解,不过在绝大多数场景中,这种理解可以行的通。

image-20220317233811913

在三维数组中,也就没有了行、列的叫法了,具体怎样分布的,可以参考上图,上图所示就是一个形状为(2,4,4)的三维数组,沿着axis 0轴分布着两层,沿着axis 1轴分布着三层,沿着axis 2轴分布着四层。

举一个numpy数组堆叠的例子

image-20220317235022623

两个形状都是(4,4)的二维数组在axis 0轴方向上的的堆叠,不难想象,最终的结果就是axis 0轴方向分布着两层分别是四行四列的二维数组,这个三维数组的形状就是上面我手画的立方体。

感谢你看到这里,如果对你有帮助,那就点个赞呗!img

img

  • 25
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值