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开发编码规范
Sep 08 Python
python中精确输出JSON浮点数的方法
Apr 18 Python
python爬取51job中hr的邮箱
May 14 Python
Python简单格式化时间的方法【strftime函数】
Sep 18 Python
PyQt5每天必学之带有标签的复选框
Apr 19 Python
Python http接口自动化测试框架实现方法示例
Dec 06 Python
python3.7+selenium模拟淘宝登录功能的实现
May 26 Python
PyCharm2020.1.2社区版安装,配置及使用教程详解(Windows)
Aug 07 Python
如何在 Matplotlib 中更改绘图背景的实现
Nov 26 Python
忆童年!用Python实现愤怒的小鸟游戏
Jun 07 Python
PyCharm 配置SSH和SFTP连接远程服务器
May 11 Python
Python编写车票订购系统 Python实现快递收费系统
Aug 14 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
YII Framework教程之异常处理详解
2016/03/14 PHP
总结PHP中数值计算的注意事项
2016/08/14 PHP
PHP设计模式之模板方法模式定义与用法详解
2018/04/02 PHP
location对象的属性和方法应用(解析URL)
2013/04/12 Javascript
使用focus方法让光标默认停留在INPUT框
2014/07/29 Javascript
jQuery移动web开发之页面跳转和加载外部页面的实现
2015/12/04 Javascript
使用vue.js开发时一些注意事项
2016/04/27 Javascript
浅谈JavaScript for循环 闭包
2016/06/22 Javascript
JQuery控制DIV的选取实现方法
2016/09/18 Javascript
解决ajax不能访问本地文件问题(利用js跨域原理)
2017/01/24 Javascript
JS Select下拉框(支持输入模糊查询)
2017/02/04 Javascript
用react-redux实现react组件之间数据共享的方法
2018/06/08 Javascript
iview Upload组件多个文件上传的示例代码
2018/09/30 Javascript
详解 微信小程序开发框架(MINA)
2019/05/17 Javascript
基于layui实现高级搜索(筛选)功能
2019/07/26 Javascript
vue 实现微信浮标效果
2019/09/01 Javascript
jQuery-App输入框实现实时搜索
2020/11/19 jQuery
pyqt5简介及安装方法介绍
2018/01/31 Python
Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例
2018/07/18 Python
Win10下python 2.7.13 安装配置方法图文教程
2018/09/18 Python
神经网络相关之基础概念的讲解
2018/12/29 Python
Python设计模式之原型模式实例详解
2019/01/18 Python
使用python进行波形及频谱绘制的方法
2019/06/17 Python
Django实现分页显示效果
2019/10/31 Python
Python稀疏矩阵及参数保存代码实现
2020/04/18 Python
Python多线程:主线程等待所有子线程结束代码
2020/04/25 Python
基于python实现图片转字符画代码实例
2020/09/04 Python
python中requests模拟登录的三种方式(携带cookie/session进行请求网站)
2020/11/17 Python
HTML5 canvas实现移动端上传头像拖拽裁剪效果
2016/03/14 HTML / CSS
请说出几个常用的异常类
2013/01/08 面试题
直接有效的自我评价
2014/01/11 职场文书
《李时珍夜宿古寺》教学反思
2014/04/09 职场文书
公积金具结保证书
2015/05/11 职场文书
Python字典和列表性能之间的比较
2021/06/07 Python
动视暴雪取消疫苗禁令 让所有员工返回线下工作
2022/04/03 其他游戏
讲解MySQL增删改操作
2022/05/06 MySQL