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中使用PDB库调试程序
Apr 05 Python
使用Python的urllib2模块处理url和图片的技巧两则
Feb 18 Python
Python+tkinter模拟“记住我”自动登录实例代码
Jan 16 Python
Python告诉你木马程序的键盘记录原理
Feb 02 Python
Python 写入训练日志文件并控制台输出解析
Aug 13 Python
Python 中如何实现参数化测试的方法示例
Dec 10 Python
Django数据库操作之save与update的使用
Apr 01 Python
Python 程序员必须掌握的日志记录
Aug 17 Python
python Paramiko使用示例
Sep 21 Python
Python的信号库Blinker用法详解
Dec 31 Python
Django实现简单的分页功能
Feb 22 Python
详解Python描述符的工作原理
Jun 11 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变量范围介绍
2012/10/15 PHP
PHP用反撇号执行外部命令
2015/04/14 PHP
两种php给图片加水印的实现代码
2020/04/18 PHP
php二维码生成
2015/10/19 PHP
javascript编程起步(第一课)
2007/01/10 Javascript
Dom在ajax技术中的作用说明
2010/10/25 Javascript
Chosen 基于jquery的选择框插件使用方法
2012/05/30 Javascript
JavaScript中json对象和string对象之间相互转化
2012/12/26 Javascript
jquery无法设置checkbox选中即没有变成选中状态
2014/03/27 Javascript
javascript实现炫酷的拖动分页
2015/05/11 Javascript
js如何改变文章的字体大小
2016/01/08 Javascript
javascript类型系统 Array对象学习笔记
2016/01/09 Javascript
用Vue.js实现监听属性的变化
2016/11/17 Javascript
javascript中Date对象的使用总结
2016/11/21 Javascript
BootStrap的两种模态框方式
2017/05/10 Javascript
JS中Swiper的使用和轮播图效果
2017/08/11 Javascript
微信小程序左滑删除功能开发案例详解
2018/11/12 Javascript
js控制随机数生成概率代码实例
2019/03/21 Javascript
NProgress显示顶部进度条效果及使用详解
2019/09/21 Javascript
[01:10]DOTA2亚洲邀请赛 征战号角响彻全场
2015/01/06 DOTA
[50:44]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第二场 2月22日
2021/03/11 DOTA
python实现udp数据报传输的方法
2014/09/26 Python
python实现查询苹果手机维修进度
2015/03/16 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
2019/08/05 Python
解决使用export_graphviz可视化树报错的问题
2019/08/09 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
2020/08/17 Python
详解CSS3中@media的实际使用
2015/08/04 HTML / CSS
世界上最好的儿童品牌:AlexandAlexa
2018/01/27 全球购物
蒂娜商店:Tiina the Store
2019/12/07 全球购物
美国在线艺术商店:HandmadePiece
2020/11/06 全球购物
KELLER SPORTS荷兰:在线订购最好的运动产品
2020/10/13 全球购物
什么是托管函数?托管函数有什么用?
2014/06/15 面试题
创业计划书中包含的9个方面
2013/12/26 职场文书
亮剑观后感300字
2015/06/05 职场文书
2015年教师节广播稿
2015/08/19 职场文书
python 实现的截屏工具
2021/05/08 Python