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实现从脚本里运行scrapy的方法
Apr 07 Python
Python基于动态规划算法计算单词距离
Jul 25 Python
使用Python & Flask 实现RESTful Web API的实例
Sep 19 Python
python实现分页效果
Oct 25 Python
Python内建模块struct实例详解
Feb 02 Python
python切片及sys.argv[]用法详解
May 25 Python
pycharm执行python时,填写参数的方法
Oct 29 Python
Python OpenCV 使用滑动条来调整函数参数的方法
Jul 08 Python
深入浅析Python科学计算库Scipy及安装步骤
Oct 12 Python
TensorFlow绘制loss/accuracy曲线的实例
Jan 21 Python
PyQt5结合QtDesigner实现文本框读写操作
Jun 11 Python
python套接字socket通信
Apr 01 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
PIGCMS 如何关闭聊天机器人
2015/02/12 PHP
php微信开发之自定义菜单完整流程
2016/10/08 PHP
PHP SESSION机制的理解与实例
2019/03/22 PHP
javascript 写类方式之七
2009/07/05 Javascript
JQuery Ajax通过Handler访问外部XML数据的代码
2010/06/01 Javascript
基于jQuery试卷自动排版系统
2010/07/18 Javascript
JavaScript中的几个关键概念的理解-原型链的构建
2011/05/12 Javascript
jQuery中的.bind()、.live()和.delegate()之间区别分析
2011/06/08 Javascript
js批量设置样式的三种方法不推荐使用with
2013/02/25 Javascript
jquery显示和隐藏div特效实例
2013/02/27 Javascript
Bootstrap滚动监听(Scrollspy)插件详解
2016/04/26 Javascript
Angular 常用指令实例总结整理
2016/12/13 Javascript
js简易版购物车功能
2017/06/17 Javascript
vue中使用localstorage来存储页面信息
2017/11/04 Javascript
Vue-Router2.X多种路由实现方式总结
2018/02/09 Javascript
vue项目使用$router.go(-1)返回时刷新原来的界面操作
2020/07/26 Javascript
python写的ARP攻击代码实例
2014/06/04 Python
跟老齐学Python之不要红头文件(1)
2014/09/28 Python
python简单实现刷新智联简历
2016/03/30 Python
使用Python的turtle模块画图的方法
2017/11/15 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
2018/11/16 Python
python中树与树的表示知识点总结
2019/09/14 Python
使用Python实现将多表分批次从数据库导出到Excel
2020/05/15 Python
python连接手机自动搜集蚂蚁森林能量的实现代码
2021/02/24 Python
5 个强大的HTML5 API 函数推荐
2014/11/19 HTML / CSS
Trina Turk官网:美国时装和泳装品牌
2018/06/10 全球购物
OSPF有什么优点?为什么OSPF比RIP收敛快?
2013/02/13 面试题
python re模块和正则表达式
2021/03/24 Python
企划经理的岗位职责
2013/11/17 职场文书
珍珠鸟教学反思
2014/02/01 职场文书
C++程序员求职信
2014/05/07 职场文书
全国优秀教师事迹材料
2014/08/26 职场文书
先进典型事迹材料
2014/12/29 职场文书
个人先进事迹材料
2014/12/29 职场文书
发言稿之优秀教师篇
2019/09/26 职场文书
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python