python 中 np.sum()函数 通俗易懂理解!
来源:互联网 发布:精灵香水淘宝店铺证吗 编辑:程序博客网 时间:2024/06/13 05:52
这一篇博客保证是我写的最清楚,最容易理解的博客!!
众所周知,sum不传参的时候,是所有元素的总和。这里就不说了。
1 sum函数可以传入一个axis的参数,这个参数怎么理解呢?这样理解:
假设我生成一个numpy数组a,如下
>>> import numpy as np>>> a = np.array([[[1,2,3,2],[1,2,3,1],[2,3,4,1]],[[1,0,2,0],[2,1,2,0],[2,1,1,1]]])>>> aarray([[[1, 2, 3, 2], [1, 2, 3, 1], [2, 3, 4, 1]], [[1, 0, 2, 0], [2, 1, 2, 0], [2, 1, 1, 1]]])>>>
这是一个拥有两维的数组,每一维又拥有三个数组,这个数组里面拥有四个元素。如果我们要将这个a数组中的第一个元素1定位出来,则我们会输入a[0][0][0]。好,这个axis的取值就是这个精确定位某个元素需要经过多少数组的长度,在这里是3,,所以axis的取值有0,1,2。如果一个数组精确到某个元素需要a[n0][n1][n2][...][n],则axis的取值就是n。定位 到这里,axis的参数的取值就解释完成了。
2 理解参数axis取值对sum结果的影响:
前面说了axis的取值(以数组a为例),axis=0,1,2。在这里,精确定位到某个元素可以用a[n0][n1][n2]表示。n0的取值是0,1(数组两维),代表第一个索引;n1的取值是0,1,2(每一维数组拥有3个子数组),代表第二个索引;n2的取值是0,1,2,3(每个子数组有4个元素),代表第三个索引,这几个取值在后面会用到。
2.1 axis = 0的时候:
axis=0,对应n0已经确定下来,即n0取值定为0,1。所以sum每个元素的求和公式是sum = a[0][n1][n2]+a[1][n1][n2]。接下来确定sum的行数和列数,n1的取值是0,1,2,为3个数,代表行数,n2的取值是0,1,2,3,为4个数,代表列数,所以sum为3*4的数组。
如何求sum的各个元素呢,sum = a[0][n1][n2]+a[1][n1][n2]这个公式又如何理解呢?如下。我们可以做一个表格:注意颜色
验证一下, 正确!
>>> a.sum(axis=0)array([[2, 2, 5, 2], [3, 3, 5, 1], [4, 4, 5, 2]])
2.2 axis = 1的时候:
axis=1,对应n1已经确定下来,即n1取值定为0,1,2。所以sum每个元素的求和公式是sum =a[n0][0][n2]+a[n0][1][n2]+a[n0][2][n2]。接下来确定sum的行数和列数,n0的取值是0,1,为2个数,代表行数,n2的取值是0,1,2,3,为4个数,代表列数,所以sum为2*4的数组。
如何求sum的各个元素呢,sum = a[n0][0][n2]+a[n0][1][n2]+a[n0][2][n2]这个公式又如何理解呢?我们又做一个表格,颜色不标注了
n2=0n2=1n2=2n2=3n0=0a[0][0][0]+
a[0][1][0]+
a[0][2][0]
= 1+1+2=4a[0][0][1]+
a[0][1][1]+
a[0][2][1]
=2+2+3=7a[0][0][2]+
a[0][1][2]+
a[0][2][2]
=3+3+4=10a[0][0][3]+
a[0][1][3]+
a[0][2][3]
=2+1+1=4n0=1a[1][0][0]+
a[1][1][0]+
a[1][2][0]
=1+2+2=5a[1][0][1]+
a[1][1][1]+
a[1][2][1]
=0+1+1=2a[0][0][2]+
a[0][1][2]+
a[0][2][2]
=2+2+1=5a[1][0][3]+
a[1][1][3]+
a[1][2][3]
=0+0+1=1所以sum(axis=1)的值是 [ [4, 7, 10, 4], [5, 2, 5, 1]]. 验证如下,正确。
>>> a.sum(axis=1)array([[ 4, 7, 10, 4], [ 5, 2, 5, 1]])
2.3 axis = 2的时候:
axis=2,对应n2已经确定下来,即n2取值定为0,1,2, 3。所以sum每个元素的求和公式是sum =a[n0][n1][0]+a[n0][n1][1]+a[n0][n1][2]+a[n0][n1][3]。接下来确定sum的行数和列数,n0的取值是0,1,为2个数,代表行数,n1的取值是0,1,2,为3个数,代表列数,所以sum为2*3的数组。
如何求sum的各个元素呢,sum = a[n0][n1][0]+a[n0][n1][1]+a[n0][n1][2]+a[n0][n1][3]这个公式又如何理解呢?我们又做一个表格,颜色不标注了
n1=0n1=1n1=2n0=0a[0][0][0]+a[0][0][1]+
a[0][0][2]+
a[0][0][3]
=1+2+3+2=8a[0][1][0]+
a[0][1][1]+
a[0][1][2]+
a[0][1][3]
=1+2+3+1=7a[0][2][0]+
a[0][2][1]+
a[0][2][2]+
a[0][2][3]
=2+3+4+1=10n0=1a[1][0][0]+
a[1][0][1]+
a[1][0][2]+
a[1][0][3]
=1+0+2+0=3a[1][1][0]+
a[1][1][1]+
a[1][1][2]+
a[1][1][3]
=2+1+2+0=5a[1][2][0]+
a[1][2][1]+
a[1][2][2]+
a[1][2][3]
=2+1+1+1=5所以sum(axis=2)的值是 [ [8, 7, 10], [3, 5, 5]]. 验证如下,正确。
>>> a.sum(axis=2)array([[ 8, 7, 10], [ 3, 5, 5]])
好了,sum的函数解释结束。- python 中 np.sum()函数 通俗易懂理解!
- python中sum函数
- Python 中sum()函数用法
- np.sum
- python中np.random.randint()
- python 中求和函数 sum详解
- python中矩阵相加函数sum()
- Python 中求和函数 sum 用法
- python 中求和函数 sum详解
- Python中函数参数理解
- np.linspace、 np.arange、np.logspace三个函数的对比分析--python学习笔记24
- python中np.genfromtxt一个简单例子
- python中的sum函数
- python中的sum函数
- python中的sum函数
- python中的sum函数
- of_find_property(np, name, lenp)等函数的理解
- python中property函数的理解
- 在Cocos2d-Lua中使用ProtoBuf (Xcode配置方法)
- 面向对象和面向过程有什么区别
- websocket通讯
- struts-2-json
- (八)应用协议--图解TCP/IP读书笔记
- python 中 np.sum()函数 通俗易懂理解!
- 简单旅游景点咨询系统的设计与实现
- 信息论笔记
- PAT A1046. Shortest Distance
- 小白带你学安卓——初识android
- xaml的一些奇奇怪怪的错误
- ListView的每个item都像卡片一样摆在界面上,另外每个item下方有3d阴影效果
- C++搜索与回溯算法之符号三角形
- BZOJ 3175 [Tjoi2013]攻击装置 二分图极大点独立集