python cumsum函数的具体使用


Posted in Python onJuly 29, 2019

这个函数的功能是返回给定axis上的累计和函数的原型如下:详见 doc

 numpy.cumsum(a, axis=None, dtype=None, out=None)
    Return the cumulative sum of the elements along a given axis.

官方的文档是没有详细解释,本人做了测试自己把理解的写下。

1.对于一维输入a(可以是list,可以是array,假设a=[1, 2, 3, 4, 5, 6, 7] ,就是当前列之前的和加到当前列上,如下:

>>>import numpy as np
>>> a=[1,2,3,4,5,6,7]
>>> np.cumsum(a)
array([ 1,  3,  6, 10, 15, 21, 28, 36, 45, 55, 75, 105])

2.对于二维输入a,axis=0(第1行不动,将第1行累加到其他行);axis=1(进入最内层,转化成列处理。第1列不动,将第1列累加到其他列),如下:

>>>import numpy as np
>>> c=[[1,2,3],[4,5,6],[7,8,9]]
>>> np.cumsum(c,axis=0)
array([[ 1, 2, 3],
    [ 5, 7, 9],
    [12, 15, 18]])
>>> np.cumsum(c,axis=1)
array([[ 1, 3, 6],
    [ 4, 9, 15],
    [ 7, 15, 24]])

3.对于三维输入a, axis=0 (第1行不动,将第1行累加到其他行); axis=1(进入第2层,每个第二层第1行不动,累加到其他行); axis=2(进入最内层,转化成列处理。第1列不动,将其累加到其他列),注意维数从外到内是0-2编号,如下:

>>>import numpy as np
>>> a
[[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 20, 30]]]
>>> np.cumsum(a,axis=0)
array([[[ 1, 2, 3],
    [ 4, 5, 6]],
 
    [[ 8, 10, 12],
    [14, 25, 36]]])
>>> np.cumsum(a,axis=1)
array([[[ 1, 2, 3],
    [ 5, 7, 9]],
 
    [[ 7, 8, 9],
    [17, 28, 39]]])
>>> np.cumsum(a,axis=2)
array([[[ 1, 3, 6],
    [ 4, 9, 15]],
 
    [[ 7, 15, 24],
    [10, 30, 60]]])

a是一个 2 x 2 x 3 的 list,解释起来有点麻烦,先把 a 变种风格

[ //axis=0
       [//axis=1。同时是axis=0所对应的第 1 行,注意是此中括号包含的整个内容
          [1, 2, 3], //axis=2。同时是 axis=1所对的第1行
          [4, 5, 6] //axis=2
       ],
       [//axis=1。同时是axis=0所对应的第 2行
          [7, 8, 9], //axis=2。同时是 axis=1所对的第1行
          [10, 20, 30] //axis=2
       ],
   ]

axis=0说明,第1维度,包含2行,绿色中括号的list,第1行(也就是由1,2,3,4,5,6组成的list)不动,累加到第二行,注意是累加
axis=1说明,第2维度,  每个绿色中括号里第1行不变,也就是 [1,2,3]和[7,8,9]不动,累加到同兄弟行(同属一个中括号的行)
axis=2说明,第3维度,也是最内层,转化成列处理,紫色数字所在列不动,累加到其他列上

对于更高维度,可以参考3维来从外向内剥离的方式理解

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python定时器(Timer)用法简单实例
Jun 04 Python
pyqt5自定义信号实例解析
Jan 31 Python
Python编程argparse入门浅析
Feb 07 Python
python按时间排序目录下的文件实现方法
Oct 17 Python
Python Numpy 实现交换两行和两列的方法
Jun 26 Python
Python调用百度根据经纬度查询地址的示例代码
Jul 07 Python
利用pyshp包给shapefile文件添加字段的实例
Dec 06 Python
Django密码存储策略分析
Jan 09 Python
Django跨域资源共享问题(推荐)
Mar 09 Python
python 解决Windows平台上路径有空格的问题
Nov 10 Python
如何基于Python pygame实现动画跑马灯
Nov 18 Python
关于python中模块和重载的问题
Nov 02 Python
python利用re,bs4,requests模块获取股票数据
Jul 29 #Python
实例详解Python装饰器与闭包
Jul 29 #Python
对于Python深浅拷贝的理解
Jul 29 #Python
PyCharm中代码字体大小调整方法
Jul 29 #Python
python pandas cumsum求累计次数的用法
Jul 29 #Python
详解Python用三种方式统计词频的方法
Jul 29 #Python
Django框架视图层URL映射与反向解析实例分析
Jul 29 #Python
You might like
收音机怀古---春雷3P7图片欣赏
2021/03/02 无线电
PHP删除非空目录的函数代码小结
2013/02/28 PHP
php文件服务实现虚拟挂载其他目录示例
2014/04/17 PHP
php下载文件源代码(强制任意文件格式下载)
2014/05/09 PHP
PHP+ajaxfileupload+jcrop插件完美实现头像上传剪裁
2014/06/09 PHP
分享下php5类中三种数据类型的区别
2015/01/26 PHP
四个常见html网页乱码问题及解决办法
2015/09/08 PHP
如何设置iframe高度自适应在跨域情况下的可用方法
2013/09/06 Javascript
js判断运行jsp页面的浏览器类型以及版本示例
2013/10/30 Javascript
用Jquery实现滚动新闻
2014/02/12 Javascript
JS中的form.submit()不能提交表单的错误原因
2014/10/08 Javascript
Jquery修改页面标题title其它JS失效的解决方法
2014/10/31 Javascript
JSONObject使用方法详解
2015/12/17 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
2018/04/24 Javascript
vue使用Element组件时v-for循环里的表单项验证方法
2018/06/28 Javascript
vue-cli3+ts+webpack实现多入口多出口功能
2019/05/30 Javascript
ES6中let、const的区别及变量的解构赋值操作方法实例分析
2019/10/15 Javascript
JS字符串和数组如何实现相互转化
2020/07/02 Javascript
python实现调用其他python脚本的方法
2014/10/05 Python
浅析Python中return和finally共同挖的坑
2017/08/18 Python
python如何生成各种随机分布图
2018/08/27 Python
python将txt文件读取为字典的示例
2018/12/22 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
python基于FTP实现文件传输相关功能代码实例
2019/09/28 Python
Python 限定函数参数的类型及默认值方式
2019/12/24 Python
Python 随机生成测试数据的模块:faker基本使用方法详解
2020/04/09 Python
HTML5里autofocus自动聚焦属性使用介绍
2016/06/22 HTML / CSS
前端canvas水印快速制作(附完整代码)
2019/09/19 HTML / CSS
BSTN意大利:德国街头和运动文化高品质商店
2020/12/22 全球购物
锐步香港官方网上商店:Reebok香港
2020/11/05 全球购物
几道数据库的面试题或笔试题
2014/05/31 面试题
Why do we need Unit test
2013/01/03 面试题
本科毕业自我鉴定
2014/03/20 职场文书
接待员岗位职责范本
2015/04/15 职场文书
安全教育培训制度
2015/08/06 职场文书
大型强子对撞机再次重启探索“第五种自然力”
2022/04/29 数码科技