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中__init__和__new__的区别详解
Jul 09 Python
Python实现的质因式分解算法示例
May 03 Python
详解Python函数式编程—高阶函数
Mar 29 Python
Django之创建引擎索引报错及解决详解
Jul 17 Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
Aug 20 Python
Python之指数与E记法的区别详解
Nov 21 Python
在pycharm中debug 实时查看数据操作(交互式)
Jun 09 Python
用python实现名片管理系统
Jun 18 Python
Pandas对每个分组应用apply函数的实现
Dec 13 Python
理解深度学习之深度学习简介
Apr 14 Python
pytorch中Schedule与warmup_steps的用法说明
May 24 Python
python+pytest接口自动化之token关联登录的实现
Apr 06 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上传图片类(随机名,缩略图,加水印)
2010/06/30 PHP
Zend的MVC机制使用分析(二)
2013/05/02 PHP
基于PHP异步执行的常用方式详解
2013/06/03 PHP
6个超实用的PHP代码片段
2015/08/10 PHP
phpStudy访问速度慢和启动失败的解决办法
2015/11/19 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
2019/09/30 PHP
js鼠标左右键 键盘值小结
2010/06/11 Javascript
基于jquery的button默认enter事件(回车事件)。
2011/05/18 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
jQuery中parent()方法用法实例
2015/01/07 Javascript
jQuery实现Flash效果上下翻动的中英文导航菜单代码
2015/09/22 Javascript
浅谈jQuery为哪般去掉了浏览器检测
2016/08/29 Javascript
BootStrap中Table分页插件使用详解
2016/10/09 Javascript
js+css3制作时钟特效
2016/10/16 Javascript
Bootstrap面板(Panels)的简单实现代码
2017/03/17 Javascript
如何在AngularJs中调用第三方插件库
2017/05/21 Javascript
详解Vue2.0组件的继承与扩展
2018/11/23 Javascript
9102年webpack4搭建vue项目的方法步骤
2019/02/20 Javascript
vue axios post发送复杂对象问题
2019/06/04 Javascript
详解ES6 Promise的生命周期和创建
2019/08/18 Javascript
layui动态绑定事件的方法
2019/09/20 Javascript
js prototype深入理解及应用实例分析
2019/11/25 Javascript
python显示天气预报
2014/03/02 Python
python实现简单名片管理系统
2018/11/30 Python
python中使用 xlwt 操作excel的常见方法与问题
2019/01/13 Python
Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例
2019/08/01 Python
Python3.5 win10环境下导入kera/tensorflow报错的解决方法
2019/12/19 Python
Python第三方包之DingDingBot钉钉机器人
2020/04/09 Python
keras的siamese(孪生网络)实现案例
2020/06/12 Python
matplotlib bar()实现百分比堆积柱状图
2021/02/24 Python
林清轩官方网站:山茶花润肤油开创者
2016/10/26 全球购物
世界领先的电子书网站:eBooks.com(在线购买小说、非小说和教科书)
2019/03/30 全球购物
党的群众路线学习材料
2014/05/16 职场文书
格林童话读书笔记
2015/06/30 职场文书
大学生奖学金获奖感言(范文)
2019/08/15 职场文书
2019幼儿园感恩节活动策划书
2019/11/28 职场文书