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网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
Jun 09 Python
Python专用方法与迭代机制实例分析
Sep 15 Python
python获取指定目录下所有文件名列表的方法
May 20 Python
Flask入门之上传文件到服务器的方法示例
Jul 18 Python
python制作填词游戏步骤详解
May 05 Python
详解Python打包分发工具setuptools
Aug 05 Python
python实现指定ip端口扫描方式
Dec 17 Python
python+tifffile之tiff文件读写方式
Jan 13 Python
Python3实现打印任意宽度的菱形代码
Apr 12 Python
Jupyter notebook如何修改平台字体
May 13 Python
浅谈Python项目的服务器部署
Apr 25 Python
Python+tkinter实现高清图片保存
Mar 13 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基础知识:类与对象(4) 范围解析操作符(::)
2006/12/13 PHP
php实现从ftp服务器上下载文件树到本地电脑的程序
2009/02/10 PHP
PHP访问MYSQL数据库封装类(附函数说明)
2010/12/04 PHP
php实现文件下载更能介绍
2012/11/23 PHP
WordPress开发中的get_post_custom()函数使用解析
2016/01/04 PHP
PHP的PDO错误与错误处理
2019/01/27 PHP
php连接mysql数据库最简单的实现方法
2019/09/24 PHP
神奇的代码 通杀各种网站-可随意修改复制页面内容
2008/07/17 Javascript
JavaScript Konami Code 实现代码
2009/07/29 Javascript
js新闻滚动 js如何实现新闻滚动效果
2013/01/07 Javascript
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
2013/11/03 Javascript
利用Javascript仿Excel的数据透视分析功能
2016/09/07 Javascript
原生js实现无缝轮播图效果
2017/01/11 Javascript
彻底理解js面向对象之继承
2018/02/04 Javascript
echarts整合多个类似option的方法实例
2018/07/10 Javascript
vue.js 实现点击按钮动态添加li的方法
2018/09/07 Javascript
Next.js实现react服务器端渲染的方法示例
2019/01/06 Javascript
JS中FormData类实现文件上传
2020/03/27 Javascript
Javascript幻灯片播放功能实现过程解析
2020/05/07 Javascript
[01:17:12]职来职往完美电竞专场
2014/09/18 DOTA
[37:47]IG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python 动态获取当前运行的类名和函数名的方法
2014/04/15 Python
python基础教程之Hello World!
2014/08/29 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
2019/01/29 Python
python实发邮件实例详解
2019/11/11 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
2019/12/09 Python
python实现贪吃蛇游戏源码
2020/03/21 Python
python中re模块知识点总结
2021/01/17 Python
Auchan Direct波兰:欧尚在线杂货店
2016/10/19 全球购物
老板电器官方购物商城:老板油烟机、燃气灶、消毒柜、电烤箱
2018/05/30 全球购物
新闻网站实习自我鉴定
2013/09/25 职场文书
个人自我鉴定写法
2013/11/30 职场文书
小学班主任寄语大全
2014/04/04 职场文书
2014年业务员工作总结范文
2014/11/17 职场文书
开国大典观后感
2015/06/04 职场文书
公司规章制度范本
2015/08/03 职场文书