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比较两个图片相似度的方法
Mar 13 Python
使用Python来编写HTTP服务器的超级指南
Feb 18 Python
深入理解python中的浅拷贝和深拷贝
May 30 Python
python统计多维数组的行数和列数实例
Jun 23 Python
python 3.6.2 安装配置方法图文教程
Sep 18 Python
基于python指定包的安装路径方法
Oct 27 Python
对python读取zip压缩文件里面的csv数据实例详解
Feb 08 Python
关于python中密码加盐的学习体会小结
Jul 15 Python
pycharm第三方库安装失败的问题及解决经验分享
May 09 Python
python3中calendar返回某一时间点实例讲解
Nov 18 Python
python numpy中setdiff1d的用法说明
Apr 22 Python
Python  序列化反序列化和异常处理的问题小结
Dec 24 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
php开发留言板的CRUD(增,删,改,查)操作
2012/04/19 PHP
简单实现限定phpmyadmin访问ip的方法
2013/03/05 PHP
让ThinkPHP支持大小写url地址访问的方法
2014/10/31 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
2017/07/10 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
用JTrackBar实现的模拟苹果风格的滚动条
2007/08/06 Javascript
javascript 写类方式之十
2009/07/05 Javascript
js利用与或运算符优先级实现if else条件判断表达式
2010/04/15 Javascript
javascript中不等于的代码是什么怎么写
2013/12/29 Javascript
Angular中的Promise对象($q介绍)
2015/03/03 Javascript
教你使用javascript简单写一个页面模板引擎
2015/05/05 Javascript
jQuery聚合函数实例
2015/05/21 Javascript
Bootstrap每天必学之导航组件
2016/04/25 Javascript
HTML5+jQuery实现搜索智能匹配功能
2017/03/24 jQuery
Vue.js实现大转盘抽奖总结及实现思路
2019/10/09 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
2020/11/06 Javascript
[01:09]DOTAPLUS——DOTA2的新时代
2018/04/04 DOTA
python文件比较示例分享
2014/01/10 Python
python分析nignx访问日志脚本分享
2015/02/26 Python
Python访问MongoDB,并且转换成Dataframe的方法
2018/10/15 Python
python读取csv和txt数据转换成向量的实例
2019/02/12 Python
解决selenium+Headless Chrome实现不弹出浏览器自动化登录的问题
2021/01/09 Python
详解Python模块化编程与装饰器
2021/01/16 Python
HTML5和以前HTML4的区别整理
2013/10/20 HTML / CSS
英国电器零售商:PRC Direct
2018/06/21 全球购物
俄罗斯小米家用电器、电子产品和智能家居商店:Poood.ru
2020/04/03 全球购物
模具设计与制造专业推荐信
2014/02/16 职场文书
法定代表人授权委托书格式
2014/10/14 职场文书
计算机考试作弊检讨书1000字
2015/01/01 职场文书
2015年乡镇扶贫工作总结
2015/04/08 职场文书
初中家长意见
2015/06/03 职场文书
Python中zipfile压缩包模块的使用
2021/05/14 Python
Windows安装Anaconda3的方法及使用过程详解
2021/06/11 Python
详解nginx安装过程并代理下载服务器文件
2022/02/12 Servers
动画电影《龙珠超 超级英雄》延期上映
2022/03/20 日漫
AngularJS实现多级下拉框
2022/03/25 Javascript