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判断、获取一张图片主色调的2个实例
Apr 10 Python
python中快速进行多个字符替换的方法小结
Dec 15 Python
Python使用微信SDK实现的微信支付功能示例
Jun 30 Python
python3使用pyqt5制作一个超简单浏览器的实例
Oct 19 Python
Python使用Phantomjs截屏网页的方法
May 17 Python
Python中偏函数用法示例
Jun 07 Python
Python PyCharm如何进行断点调试
Jul 05 Python
如何安装并使用conda指令管理python环境
Jul 10 Python
django ManyToManyField多对多关系的实例详解
Aug 09 Python
Python定义函数实现累计求和操作
May 03 Python
Python自带的IDE在哪里
Jul 01 Python
Python FuzzyWuzzy实现模糊匹配
Apr 28 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
Search Engine Friendly的URL设计
2006/10/09 PHP
Yii入门教程之Yii安装及hello world
2014/11/25 PHP
tp5框架基于Ajax实现列表无刷新排序功能示例
2020/02/10 PHP
Firefox和IE浏览器兼容JS脚本写法小结
2008/07/07 Javascript
ASP中Sub和Function的区别说明
2020/08/30 Javascript
js图片模糊切换显示特效的方法
2015/02/17 Javascript
Bootstrap3制作图片轮播效果
2016/05/12 Javascript
js改变css样式的三种方法推荐
2016/06/28 Javascript
AngularJS入门教程之多视图切换用法示例
2016/11/02 Javascript
提高Node.js性能的应用技巧分享
2017/08/10 Javascript
写给小白看的JavaScript异步
2017/11/29 Javascript
基于vue实现可搜索下拉框定制组件
2020/03/26 Javascript
从0到1构建vueSSR项目之路由的构建
2019/03/07 Javascript
Layui实现带查询条件的分页
2019/07/27 Javascript
vue页面加载时的进度条功能(实例代码)
2020/01/13 Javascript
[02:08]2014DOTA2国际邀请赛 430专访:力争取得小组前二
2014/07/11 DOTA
PYTHON正则表达式 re模块使用说明
2011/05/19 Python
详细解析Python中的变量的数据类型
2015/05/13 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
2018/05/07 Python
使用apiDoc实现python接口文档编写
2019/11/19 Python
Python startswith()和endswith() 方法原理解析
2020/04/28 Python
pycharm实现print输出保存到txt文件
2020/06/01 Python
python 如何引入协程和原理分析
2020/11/30 Python
html5本地存储 localStorage操作使用详解
2016/09/20 HTML / CSS
JavaScript实现页面动态验证码的实现示例
2021/03/23 Javascript
承租经营合作者协议书
2014/10/01 职场文书
自我查摆剖析材料
2014/10/11 职场文书
2015年见习期工作总结
2014/12/12 职场文书
学生党员检讨书范文
2014/12/27 职场文书
八达岭长城导游词
2015/01/30 职场文书
升职自荐书
2019/05/09 职场文书
《鲁班学艺》读后感3篇
2019/11/27 职场文书
如何解决.cuda()加载用时很长的问题
2021/05/24 Python
Redis读写分离搭建的完整步骤
2021/09/14 Redis
Python OpenCV实现图像模板匹配详解
2022/04/07 Python
JS前端使用canvas实现扩展物体类和事件派发
2022/08/05 Javascript