python 中 np.sum()函数 通俗易懂理解!
这一篇博客保证是我写的最清楚,最容易理解的博客!!
众所周知,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]]])
>>> a
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]]])
>>>
这是一个拥有两维的数组,每一维又拥有三个数组,这个数组里面拥有四个元素。如果我们要将这个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]这个公式又如何理解呢?如下。我们可以做一个表格:注意颜色
n2=0 | n2=1 | n2=2 | n2=3 | |
n1=0 | a[0][0][0]+a[1][0][0]=1+1=2 | a[0][0][1]+a[1][0][1]=2+0=2 | a[0][0][2]+a[1][0][2]=3+2=5 | a[0][0][3]+a[1][0][3]=2+0=2 |
n1=1 | a[0][1][0]+a[1][1][0]=1+2=3 | a[0][1][1]+a[1][1][1]=2+1=3 | a[0][1][2]+a[1][1][2]=3+2=5 | a[0][1][3]+a[1][1][3]=1+0=1 |
n1=2 | a[0][2][0]+a[1][2][0]=2+2=4 | a[0][2][1]+a[1][2][1]=3+1=4 | a[0][2][2]+a[1][2][2]=4+1=5 | a[0][2][3]+a[1][2][3]=1+1=2 |
所以sum(axis=0)的值是 [ [2, 2, 5, 2], [3, 3, 5, 1], [4, 4, 5, 2]]。
验证一下, 正确!
>>> 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=0 | n2=1 | n2=2 | n2=3 | |
n0=0 |
a[0][0][0]+ a[0][1][0]+ a[0][2][0] = 1+1+2=4 |
a[0][0][1]+ a[0][1][1]+ a[0][2][1] =2+2+3=7 |
a[0][0][2]+ a[0][1][2]+ a[0][2][2] =3+3+4=10 |
a[0][0][3]+ a[0][1][3]+ a[0][2][3] =2+1+1=4 |
n0=1 |
a[1][0][0]+ a[1][1][0]+ a[1][2][0] =1+2+2=5 |
a[1][0][1]+ a[1][1][1]+ a[1][2][1] =0+1+1=2 |
a[0][0][2]+ a[0][1][2]+ a[0][2][2] =2+2+1=5 |
a[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=0 | n1=1 | n1=2 | |
n0=0 |
a[0][0][0]+ a[0][0][1]+ a[0][0][2]+ a[0][0][3] =1+2+3+2=8 |
a[0][1][0]+ a[0][1][1]+ a[0][1][2]+ a[0][1][3] =1+2+3+1=7 |
a[0][2][0]+ a[0][2][1]+ a[0][2][2]+ a[0][2][3] =2+3+4+1=10 |
n0=1 |
a[1][0][0]+ a[1][0][1]+ a[1][0][2]+ a[1][0][3] =1+0+2+0=3 |
a[1][1][0]+ a[1][1][1]+ a[1][1][2]+ a[1][1][3] =2+1+2+0=5 |
a[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 numpy sum函数_如何使用Python中的sum函数?
之前小编向大家介绍过python中的sum函数(https://www.py.cn/jishu/jichu/22025.html).在python中sunm函数使用分为两种情况,一种是python自带 ...
- python中的sum()函数
python自带的sum函数(或者Numpy中的sum函数), 无参时,所有全加: axis=0,按列相加: axis=1,按行相加: import numpy as np #python中自带的su ...
- Python中np.sum()对axis的个人理解,超详细
你们讨论的axis=0和1并不是简单的行和列,axis=0表示的是第一个维度,在第一个维度上的元素间进行求和.比较大小,axis=1表示的是第二个维度,在第二个维度上的元素间进行求和.比较大小.一个维 ...
- python中的sum函数.sum(axis=1)
看起来挺简单的样子,但是在给sum函数中加入参数.sum(a,axis=0)或者是.sum(axis=1) 就有点不解了 在我实验以后发现 我们平时用的sum应该是默认的axis=0 就是普通的相加 ...
- python中np.eye()函数的使用
numpy.eye(N,M=None, k=0, dtype=<type 'float'>) 关注第一个第三个参数就行了 第一个参数:输出方阵(行数=列数)的规模,即行数或列数 第三个参数 ...
- Python中的sum函数.sum(axis = 1)
看起来挺简单的样子,但是在给sum函数中加入参数.sum(a,axis=0)或者是.sum(axis=1) 就有点不解了 在我实验以后发现 我们平时用的sum应该是默认的axis=0 就是普通的相加 ...
- python中numpy.sum()函数
众所周知,sum不传参的时候,是所有元素的总和.这里就不说了. 假设我生成一个numpy数组a,如下 这是一个拥有两维的数组,每一维又拥有三个数组,这个数组里面拥有四个元素.如果我们要将这个a数组中的 ...
- Python 中np.prod函数详解
官方文档,输入a是数组,返回指定轴上的乘积,不指定轴默认是所有元素的乘积. 默认全部元素相乘,123*4=24 axis =0是按列乘, axis = 1是按行乘.
- python自带的sum()函数和numpy库中的sum()函数的区别
在学习<机器学习实战>一书的第十章时,对 return np.sqrt(sum(np.power(vecA - vecB, 2))) 这样一条语句输出的结果老是不对,明明想要输出的是对两个 ...
最新文章
- 支付宝 php rsa算法,:PHP支付宝接口RSA验证
- Spark SQL 之SparkSession
- STL源码剖析---STL容器特征总结(含迭代器失效)
- 常用工具类系列之DateUtil
- pos机未能连接服务器,pos 机链接不了服务器
- Google搜索语法
- python风险评分卡系统_《智能风控:Python金融风险管理与评分卡建模》(梅子行,毛鑫宇)【摘要 书评 试读】- 京东图书...
- [Luogu] 树状数组
- Swiper 触屏滑动切换
- php5.3升级脚本
- PCB Dk、Df和介质损耗
- 圆周率π前百万位,完整版显示
- python爬虫猫眼电影TOP100(爬虫入门基础,同步入库)
- CS代理+proxychains+nmap进行内网扫描
- R语言使用dplyr包计算dataframe分组聚合样本独特值个数、计数个数、四分位距IQR
- 24核超级计算机,24核装备 Intel发布最强14nm至强处理器
- CocosCreator黄金矿工资源工程文件
- 飞腾服务器如何查看cpu型号,飞腾cpu怎么样 飞腾cpu简介及对比评测【详解】
- Linux 【进程】
- WPF 3D模型介绍及使用