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中unittest实现简单的单元测试实例详解
Jan 09 Python
python 容器总结整理
Apr 04 Python
1分钟快速生成用于网页内容提取的xslt
Feb 23 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
Feb 26 Python
Python简单计算文件MD5值的方法示例
Apr 11 Python
Django学习教程之静态文件的调用详解
May 08 Python
python 杀死自身进程的实现方法
Jul 01 Python
在Python函数中输入任意数量参数的实例
Jul 16 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
Aug 19 Python
Django REST框架创建一个简单的Api实例讲解
Nov 05 Python
python根据完整路径获得盘名/路径名/文件名/文件扩展名的方法
Apr 22 Python
基于Python编写简易版的天天跑酷游戏的示例代码
Mar 23 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/03 冲泡冲煮
Apache2 httpd.conf 中文版
2006/11/17 PHP
php调用shell的方法
2014/11/05 PHP
PHP+MySQL删除操作实例
2015/01/21 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
javascript css float属性的特殊写法
2008/11/13 Javascript
Mootools 1.2教程 输入过滤第二部分(字符串)
2009/09/15 Javascript
jquery的index方法实现tab效果
2011/02/16 Javascript
javascript学习笔记(八) js内置对象
2012/06/19 Javascript
JavaScript高级程序设计(第3版)学习笔记 概述
2012/10/11 Javascript
JS兼容浏览器的导出Excel(CSV)文件的方法
2014/05/03 Javascript
javascript实现的HashMap类代码
2014/06/27 Javascript
基于jQuery实现动态数字展示效果
2015/08/12 Javascript
浅谈JavaScript for循环 闭包
2016/06/22 Javascript
JavaScript数组去重由慢到快由繁到简(优化篇)
2016/08/26 Javascript
Vue 多层组件嵌套二种实现方式(测试实例)
2017/09/08 Javascript
JavaScript实现带有子菜单和控件的slider轮播图效果
2017/11/01 Javascript
Node.js使用MySQL连接池的方法实例
2018/02/11 Javascript
jQuery实现浏览器之间跳转并传递参数功能【支持中文字符】
2018/03/28 jQuery
js中this的指向问题归纳总结
2018/11/28 Javascript
微信小程序云开发详细教程
2019/05/16 Javascript
jquery-ui 进度条功能示例【测试可用】
2019/07/25 jQuery
VUEX-action可以修改state吗
2019/11/19 Javascript
JS实现手写 forEach算法示例
2020/04/29 Javascript
[47:38]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python通过字典dict判断指定键值是否存在的方法
2015/03/21 Python
Python定时执行之Timer用法示例
2015/05/27 Python
Python多层装饰器用法实例分析
2018/02/09 Python
PyCharm第一次安装及使用教程
2020/01/08 Python
利用CSS3的transform做的动态时钟效果
2011/09/21 HTML / CSS
HTML5 canvas基本绘图之图形组合
2016/06/27 HTML / CSS
DAWGS鞋官方网站:鞋,凉鞋,靴子
2016/10/04 全球购物
学期自我评价
2014/01/27 职场文书
《小池塘》教学反思
2014/02/28 职场文书
农民工工资承诺书范文
2014/03/31 职场文书
募捐感谢信
2015/01/22 职场文书