Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4586854
  • 博文数量: 1214
  • 博客积分: 13195
  • 博客等级: 上将
  • 技术积分: 9105
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-19 14:41
个人简介

C++,python,热爱算法和机器学习

文章分类

全部博文(1214)

文章存档

2021年(13)

2020年(49)

2019年(14)

2018年(27)

2017年(69)

2016年(100)

2015年(106)

2014年(240)

2013年(5)

2012年(193)

2011年(155)

2010年(93)

2009年(62)

2008年(51)

2007年(37)

分类: IT职场

2019-03-05 09:30:43

https://www.cnblogs.com/zhouyang209117/p/6512892.html

axis

先看懂numpy.argmax的含义.那么numpy.sum就非常好理解.
看一维的例子.

import numpy as np a = np.array([1, 5, 5, 2]) print(np.sum(a, axis=0))

上面代码就是把各个值加相加.默认axis为0.axis在二维以上数组中才能体现出来作用.

import numpy as np
a = np.array([[1, 5, 5, 2],
              [9, 6, 2, 8],
              [3, 7, 9, 1]]) print(np.sum(a, axis=0))

为了描述方便,a就表示这个二维数组,np.sum(a, axis=0)的含义是a[0][j],a[1][j],a[2][j](j=0,1,2,3)对应项相加的结果.即[1,5,5,2]+[9,6,2,8]+[3,7,9,1]=[13,18,16,11].接着看axis=1的情况.

import numpy as np
a = np.array([[1, 5, 5, 2],
              [9, 6, 2, 8],
              [3, 7, 9, 1]]) print(np.sum(a, axis=1))

np.sum(a, axis=1)的含义是a[i][0],a[i][1],a[i][2],a[i][3](i=0,1,2)对应项相加的结果.即[1,9,3]+[5,6,7]+[5,2,9]+[2,8,1]=[13,25,20].
三维情况是类似的.

import numpy as np
a = np.array([
              [ [1, 5, 5, 2],
                  [9, -6, 2, 8],
                  [-3, 7, -9, 1]
              ],

              [ [-1, 5, -5, 2],
                  [9, 6, 2, 8],
                  [3, 7, 9, 1]
              ]
            ])
print(np.sum(a, axis=0))

np.argmax(a, axis=0)的含义是a[0][j][k],a[1][j][k] (j=0,1,2,k=0,1,2,3)中对应项相加的结果.[[1, 5, 5, 2],[9, -6, 2, 8],[-3, 7, -9, 1]]+[[-1, 5, -5, 2],[9, 6, 2, 8],[3, 7, 9, 1]]=[[0,10,0,4],[18,0,4,16],[0,14,0,2]]. axis=1,axis=2的道理是类似的.

keepdims

keepdims的含义是是否保持维数,默认是false.通过上面的例子可以发现sum之后3维变成2维.2维变成1维.keepdims=True,最直观的理解就是把sum结果又加一个[],以保持它的维度不变.这在某些场景有非常有用.

import numpy as np
a = np.array([
              [ [1, 5, 5, 2],
                  [9, -6, 2, 8],
                  [-3, 7, -9, 1]
              ],

              [ [-1, 5, -5, 2],
                  [9, 6, 2, 8],
                  [3, 7, 9, 1]
              ]
            ])
print(np.sum(a, axis=0, keepdims=True))

可以和上面的例子对比下结果.

参考资料

阅读(917) | 评论(0) | 转发(0) |
0

上一篇:求矩阵的1,和2范数

下一篇:deep learning note

给主人留下些什么吧!~~