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使用PyGame绘制图像并保存为图片文件的方法
Apr 24 Python
python基于xmlrpc实现二进制文件传输的方法
Jun 02 Python
Python中的getopt函数使用详解
Jul 28 Python
详解Python中的文件操作
Aug 28 Python
Python有序字典简单实现方法示例
Sep 28 Python
python入门前的第一课 python怎样入门
Mar 06 Python
python基于SMTP协议发送邮件
May 31 Python
十行代码使用Python写一个USB病毒
Jun 21 Python
Python3批量生成带logo的二维码方法
Jun 24 Python
如何安装2019Pycharm最新版本(详细教程)
Sep 26 Python
如何用PyPy让你的Python代码运行得更快
Dec 02 Python
Python list去重且保持原顺序不变的方法
Apr 03 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垃圾回收机制引用计数器概念分析
2013/06/24 PHP
通过修改配置真正解决php文件上传大小限制问题(nginx+php)
2015/09/23 PHP
PHP导出Excel实例讲解
2016/01/24 PHP
浅析Yii2中GridView常见操作
2016/04/22 PHP
php数组分页实现方法
2016/04/30 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
原生JS实现表单checkbook获取已选择的值
2013/07/21 Javascript
介绍一个简单的JavaScript类框架
2015/06/24 Javascript
js中的内部属性与delete操作符介绍
2015/08/10 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖动基本操作
2015/11/30 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
BootStrap与Select2使用小结
2017/02/17 Javascript
利用JS测试目标网站的打开响应速度
2017/12/01 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
vue-i18n结合Element-ui的配置方法
2019/05/20 Javascript
微信小程序实现左侧滑动导航栏
2020/04/08 Javascript
VUE+elementui面包屑实现动态路由详解
2019/11/04 Javascript
详解Vue的watch中的immediate与watch是什么意思
2019/12/30 Javascript
JS函数进阶之继承用法实例分析
2020/01/15 Javascript
JS数组扁平化、去重、排序操作实例详解
2020/02/24 Javascript
[48:48]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Dream TIME
2014/05/21 DOTA
python 安装virtualenv和virtualenvwrapper的方法
2017/01/13 Python
Python实现的密码强度检测器示例
2017/08/23 Python
基于DATAFRAME中元素的读取与修改方法
2018/06/08 Python
python生成多个只含0,1元素的随机数组或列表的实例
2018/11/12 Python
在Python 中同一个类两个函数间变量的调用方法
2019/01/31 Python
python实现简单图片物体标注工具
2019/03/18 Python
python plt可视化——打印特殊符号和制作图例代码
2020/04/17 Python
深入了解canvas在移动端绘制模糊的问题解决
2019/04/30 HTML / CSS
GUESS德国官网:美国牛仔服装品牌
2017/02/14 全球购物
非常详细的C#面试题集
2016/07/13 面试题
GWT (Google Web Toolkit)有哪些主要的原件组成?
2015/06/08 面试题
计算机开发个人求职信范文
2013/09/26 职场文书
大二学生职业生涯规划书
2014/02/05 职场文书
讲解Python实例练习逆序输出字符串
2022/05/06 Python
Python使用Web框架Flask开发项目
2022/06/01 Python