楼主: hunter.Z
1352 5

[学习笔记] 理解numpy 数组计算时axis参数的意义 [推广有奖]

  • 0关注
  • 0粉丝

教师

已卖:6份资源

硕士生

14%

还不是VIP/贵宾

-

威望
0
论坛币
16101 个
通用积分
54.1593
学术水平
9 点
热心指数
9 点
信用等级
9 点
经验
1061 点
帖子
66
精华
0
在线时间
115 小时
注册时间
2018-2-27
最后登录
2025-3-20

楼主
hunter.Z 在职认证  发表于 2019-4-14 19:44:46 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我们以三维数组为例说明按轴计算参数的用法
定义三维数组a
  1. a = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])
  2. In [1]: a
  3. Out[1]:
  4. array([[[ 1,  2,  3],
  5.         [ 4,  5,  6]],

  6.        [[ 7,  8,  9],
  7.         [10, 11, 12]]])
复制代码
a是一个(2,2,3)的三维数组
  1. In [2]: a.shape
  2. Out[2]: (2, 2, 3)
复制代码
axis参数相对应的值其实是a数组的三个维度的下标(索引)




我们使用sum函数计算每组的和

当 axis = 0的时候计算方向为第0个维度,取值范围0,1 两个数,即参与求和的元素索引a[0][x][y]+a[1][x][y]


x取值范围0,1  ; y取值范围0,1,2
在不考虑 sxis = 0的维度时  [x][y]的组合有:

x=0  :   [0][0],[0][1],[0][2]
x=1  :   [1][0],[1][1],[1][2]

最终计算过程如下:

  1. [
  2.   [ a[0][0][0]+a[1][0][0],a[0][0][1]+a[1][0][1],a[0][0][2]+a[1][0][2] ],
  3.   [ a[0][1][0]+a[1][1][0],a[0][1][1]+a[1][1][1],a[0][1][2]+a[1][1][2] ],
  4. ]
  5. 实际执行代码后结果如下:In [3]: np.sum(a,axis=0)
  6. Out[3]:
  7. array([[ 8, 10, 12],
  8.        [14, 16, 18]])
复制代码

当 axis = 1的时候计算方向为第1个维度,取值范围0,1 两个数,即参与求和的元素索引a[x][0][y]+a[x][1][y]

x取值范围0,1  ; y取值范围0,1,2
在不考虑 sxis = 1的维度时  [x][y]的组合有:
x=0  :   [0][0],[0][1],[0][2]
x=1  :   [1][0],[1][1],[1][2]

最终计算过程如下:

  1. [
  2.   [ a[0][0][0]+a[0][1][0],a[0][0][1]+a[0][1][1],a[0][0][2]+a[0][1][2] ],

  3.   [ a[1][0][0]+a[1][1][0],a[1][0][1]+a[1][1][1],a[1][0][2]+a[1][1][2] ],
  4. ]
  5. 实际执行后的效果In [4]: np.sum(a,axis=1)
  6. Out[4]:
  7. array([[ 5,  7,  9],
  8.        [17, 19, 21]])
复制代码
当 axis = 2的时候计算方向为第2个维度,取值范围0,1,2 三个数,即参与求和的元素索引a[x][y][0]+a[x][y][1]+a[x][y][3]
x取值范围0,1  ; y取值范围0,1
在不考虑 sxis = 2的维度时  [x][y]的组合有:
x=0  :   [0][0],[0][1]
x=1  :   [1][0],[1][1]

最终计算过程如下:
  1. [   [ a[0][0][0]+a[0][0][1]+a[0][0][2], a[0][1][0]+a[0][1][1]+a[0][1][2]],
  2.   [ a[1][0][0]+a[1][0][1]+a[1][0][2], a[1][1][0]+a[1][1][1]+a[1][1][2]],]最终执行结果如下:
  3. In [5]: np.sum(a,axis=2)
  4. Out[5]:
  5. array([[ 6, 15],
  6.        [24, 33]])
复制代码





二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝


已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
经管之家编辑部 + 100 + 3 + 3 + 3 精彩帖子

总评分: 论坛币 + 100  学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

本帖被以下文库推荐

沙发
经管之家编辑部 在职认证  发表于 2019-4-14 20:50:14
为您点赞!

藤椅
hifinecon 发表于 2019-4-14 22:12:21

板凳
从1万到一亿 在职认证  发表于 2019-4-15 10:25:21

报纸
youhaolieren 发表于 2019-4-15 10:56:35
厉害!

地板
珍惜点滴 学生认证  发表于 2019-4-15 18:03:05
感谢分享,向您学习,赞!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
扫码
拉您进交流群
GMT+8, 2026-2-5 21:55