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实现代码行数统计示例分享
Feb 10 Python
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
Aug 08 Python
jupyter notebook引用from pyecharts.charts import Bar运行报错
Apr 23 Python
对numpy中shape的深入理解
Jun 15 Python
使用Python抓取豆瓣影评数据的方法
Oct 17 Python
python无限生成不重复(字母,数字,字符)组合的方法
Dec 04 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
Jun 13 Python
python对矩阵进行转置的2种处理方法
Jul 17 Python
使用Python函数进行模块化的实现
Nov 15 Python
python异常处理、自定义异常、断言原理与用法分析
Mar 23 Python
python文件名批量重命名脚本实例代码
Apr 22 Python
Python多线程实用方法以及共享变量资源竞争问题
Apr 12 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 json与xml序列化/反序列化
2013/10/28 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
2014/08/16 PHP
PHP中iconv函数转码时截断字符问题的解决方法
2015/01/21 PHP
Json字符串转换为JS对象的高效方法实例
2013/05/01 Javascript
Js 正则表达式知识汇总
2014/12/02 Javascript
jquery 设置style:display的方法
2015/01/29 Javascript
jQuery实现预加载图片的方法
2015/03/17 Javascript
TypeScript 中接口详解
2015/06/19 Javascript
Ajax中解析Json的两种方法对比分析
2015/06/25 Javascript
理解JavaScript事件对象
2016/01/25 Javascript
jQuery获取checkbox选中的值
2016/01/28 Javascript
bootstrap与Jquery UI 按钮样式冲突的解决办法
2016/09/23 Javascript
JavaScript之Map和Set_动力节点Java学院整理
2017/06/29 Javascript
使用SVG基本操作API的实例讲解
2017/09/14 Javascript
浅谈Vue.nextTick 的实现方法
2017/10/25 Javascript
浅谈webpack下的AOP式无侵入注入
2017/11/12 Javascript
webstorm中配置nodejs环境及npm的实例
2018/05/15 NodeJs
浅谈一个webpack构建速度优化误区
2019/06/24 Javascript
JS数组方法slice()用法实例分析
2020/01/18 Javascript
使用JS实现动态时钟
2020/03/12 Javascript
Python 递归函数详解及实例
2016/12/27 Python
python selenium登录豆瓣网过程解析
2019/08/10 Python
使用OpenCV实现仿射变换—旋转功能
2019/08/29 Python
python openvc 裁剪、剪切图片 提取图片的行和列
2019/09/19 Python
Python random模块的使用示例
2020/10/10 Python
HTML5语义化元素你真的用对了吗
2019/08/22 HTML / CSS
全球领先的美容用品专卖店:Beauty Plus Salon
2018/09/04 全球购物
毕业生应聘幼儿园的自荐信
2013/11/20 职场文书
建筑行业的大学生自我评价
2013/12/08 职场文书
应聘自荐信
2013/12/14 职场文书
优秀毕业生求职信范文
2014/01/02 职场文书
上课说话检讨书大全
2014/01/22 职场文书
素质教育标语
2014/06/27 职场文书
作风建设剖析材料
2014/10/06 职场文书
如何写贫困证明申请书
2014/10/29 职场文书
Redis配置外网可访问(redis远程连接不上)的方法
2022/12/24 Redis