前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[开发技巧]·Numpy中对axis的理解与应用

[开发技巧]·Numpy中对axis的理解与应用

作者头像
小宋是呢
发布2019-06-27 13:23:02
4990
发布2019-06-27 13:23:02
举报
文章被收录于专栏:深度应用深度应用深度应用

[开发技巧]·Numpy中对axis的理解与应用

1.问题描述

在使用Numpy时我们经常要对Array进行操作,如果需要针对Array的某一个纬度进行操作时,就会用到axis参数。

一般的教程都是针对二维矩阵操作axis,当axis为0时,计算方向时列,当axis为1时计算方向为行。

但是这样的描述并不能让我们真正理解axis的含义。下面我一个三维Array,来带领大家深入理解axis

2.实战讲解

>>> import numpy as np
>>> arrays = np.arange(0,12).reshape([2,3,2])
>>> arrays
array([[[ 0,  1],
        [ 2,  3],
        [ 4,  5]],

       [[ 6,  7],
        [ 8,  9],
        [10, 11]]])
>>> np.sum(arrays)
66
>>> np.sum(arrays,axis=0)
array([[ 6,  8],
       [10, 12],
       [14, 16]])
>>> np.sum(arrays,axis=1)
array([[ 6,  9],
       [24, 27]])
>>> np.sum(arrays,axis=2)
array([[ 1,  5,  9],
       [13, 17, 21]])

为什么是这个结果呢,笔者来帮大家说梳理一下:

首先我们新建了一个shape(2,3,3)的Array

1.用np.sum(arrays)时,计算的是所有元素的和。

2.用np.sum(arrays,axis = 0)时,我们可以这样理解,以最外面的[ ]为一个list,对里面两个元素(每个元素都是二维Array)进行相加求和,所以得到的Array和相加元素形状相同。

2.用np.sum(arrays,axis = 1)时,以中间的[ ]为一个list,对里面三个元素(每个元素都是一维Array)进行相加求和,所以得到的Array和相加元素形状相同,但是由于有两个中间的[ ],所以把两个拼接在了一起。

3.用np.sum(arrays,axis = 2)时,以最里面的[ ]为一个list,对里面两个元素(每个元素都是一个人说)进行相加求和,所以得到的Array和相加元素形状相同,但是由于有两个中间的[ ],每个中间的[ ]包含三个[ ],最终shape为(2,3)。

类似其实我们在使用下标选取内容时使用相同的概念

>>> import numpy as np
>>> arrays = np.arange(0,12).reshape([2,3,2])
>>> arrays
array([[[ 0,  1],
        [ 2,  3],
        [ 4,  5]],

       [[ 6,  7],
        [ 8,  9],
        [10, 11]]])
>>> arrays[0,:,:]
array([[0, 1],
       [2, 3],
       [4, 5]])
>>> arrays[:,0,:]
array([[0, 1],
       [6, 7]])
>>> arrays[:,:,0]
array([[ 0,  2,  4],
       [ 6,  8, 10]])
>>> 

大家可以根据笔者上面讲述的,好好理解分析一下为什么是这样。

hope this helps

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年04月16日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • [开发技巧]·Numpy中对axis的理解与应用
    • 1.问题描述
      • 2.实战讲解
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档