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的加密模块md5、sha、crypt使用实例
Sep 28 Python
Python中使用Inotify监控文件实例
Feb 14 Python
python简单分割文件的方法
Jul 30 Python
详解Python中 sys.argv[]的用法简明解释
Dec 20 Python
利用Pyhton中的requests包进行网页访问测试的方法
Dec 26 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
Jun 13 Python
线程安全及Python中的GIL原理分析
Oct 29 Python
python 成功引入包但无法正常调用的解决
Mar 09 Python
基于Python的Jenkins的二次开发操作
May 12 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
Aug 27 Python
使用python把xmind转换成excel测试用例的实现代码
Oct 12 Python
python开发飞机大战游戏
Jul 15 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
自己动手,丰衣足食 - 短波框形天线制作
2021/03/01 无线电
基于php冒泡排序算法的深入理解
2013/06/09 PHP
php循环创建目录示例分享(php创建多级目录)
2014/03/04 PHP
PHP里8个鲜为人知的安全函数分析
2014/12/09 PHP
windows下配置php5.5开发环境及开发扩展
2014/12/25 PHP
PHP扩展程序实现守护进程
2015/04/16 PHP
腾讯的ip接口 方便获取当前用户的ip地理位置
2010/11/25 Javascript
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
js实现一个省市区三级联动选择框代码分享
2013/03/06 Javascript
js实现简洁的TAB滑动门效果代码
2015/09/06 Javascript
javascript手风琴下拉菜单实现代码
2015/11/12 Javascript
JS 全屏和退出全屏详解及实例代码
2016/11/07 Javascript
JS如何生成一个不重复的ID的函数
2016/12/25 Javascript
vue.js树形组件之删除双击增加分支实例代码
2017/02/28 Javascript
es6系列教程_ Map详解以及常用api介绍
2017/09/25 Javascript
nodejs结合socket.io实现websocket通信功能的方法
2018/01/12 NodeJs
详解Vue项目编译后部署在非网站根目录的解决方案
2018/04/26 Javascript
微信小程序实现分享到朋友圈功能
2018/07/19 Javascript
基于AngularJs select绑定数字类型的问题
2018/10/08 Javascript
微信小程序textarea层级过高的解决方法
2019/03/04 Javascript
解决vue+webpack项目接口跨域出现的问题
2020/08/10 Javascript
jquery实现简单每周轮换的日历
2020/09/10 jQuery
一篇文章看懂JavaScript中的回调
2021/01/05 Javascript
Python正则抓取新闻标题和链接的方法示例
2017/04/24 Python
用TensorFlow实现lasso回归和岭回归算法的示例
2018/05/02 Python
python实现周期方波信号频谱图
2018/07/21 Python
PyQt5重写QComboBox的鼠标点击事件方法
2019/06/25 Python
Python matplotlib以日期为x轴作图代码实例
2019/11/22 Python
django商品分类及商品数据建模实例详解
2020/01/03 Python
白宫黑市官网:White House Black Market
2016/11/17 全球购物
意大利香水和彩妆护肤品购物网站:Ditano
2017/08/13 全球购物
经济实惠的豪华家具:My-Furniture
2019/03/12 全球购物
英国男女豪华配饰和礼品网站:Black.co.uk
2020/02/28 全球购物
优秀少先队员主要事迹材料
2014/05/28 职场文书
失职检讨书大全
2015/01/26 职场文书
全国爱眼日活动总结
2015/02/27 职场文书