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装饰器验证配置文件示例
Feb 24 Python
python将字符串转换成数组的方法
Apr 29 Python
利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程
May 05 Python
python字典的常用操作方法小结
May 16 Python
TensorFlow安装及jupyter notebook配置方法
Sep 08 Python
Python探索之创建二叉树
Oct 25 Python
Python实现简单文本字符串处理的方法
Jan 22 Python
Python自动发送邮件的方法实例总结
Dec 08 Python
Python整数对象实现原理详解
Jul 01 Python
python3 tkinter实现添加图片和文本
Nov 26 Python
Python模块的制作方法实例分析
Dec 21 Python
python实现扑克牌交互式界面发牌程序
Apr 22 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 文件上传代码(限制jpg文件)
2010/01/05 PHP
php实现微信公众平台账号自定义菜单类
2015/10/11 PHP
PHP闭包定义与使用简单示例
2018/04/13 PHP
一个JavaScript变量声明的知识点
2013/10/28 Javascript
整理AngularJS中的一些常用指令
2015/06/16 Javascript
js实现当复选框选择匿名登录时隐藏登录框效果
2015/08/14 Javascript
fastclick插件导致日期(input[type="date"])控件无法被触发该如何解决
2015/11/09 Javascript
BootStrap中Table分页插件使用详解
2016/10/09 Javascript
EditPlus 正则表达式 实战(3)
2016/12/15 Javascript
angular.js + require.js构建模块化单页面应用的方法步骤
2017/07/19 Javascript
Spring Boot/VUE中路由传递参数的实现代码
2018/03/02 Javascript
vue组件中的数据传递方法
2018/05/14 Javascript
详解html-webpack-plugin插件(用法总结)
2018/09/12 Javascript
mock.js模拟数据实现前后端分离
2019/07/24 Javascript
微信小程序tab切换可滑动切换导航栏跟随滚动实现代码
2019/09/04 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
2019/09/21 Javascript
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
2020/05/13 Javascript
解决vue单页面应用进入页面加载所有 js 的问题
2020/08/12 Javascript
OpenLayers3加载常用控件使用方法详解
2020/09/25 Javascript
jQuery zTree如何改变指定节点文本样式
2020/10/16 jQuery
Python+OpenCV图片局部区域像素值处理改进版详解
2019/01/23 Python
Python3.5内置模块之time与datetime模块用法实例分析
2019/04/27 Python
PYQT5开启多个线程和窗口,多线程与多窗口的交互实例
2019/12/13 Python
python 读取更新中的log 或其它文本方式
2019/12/24 Python
Python如何使用内置库matplotlib绘制折线图
2020/02/24 Python
python中delattr删除对象方法的代码分析
2020/12/15 Python
Timex手表官网:美国运动休闲手表品牌
2017/01/28 全球购物
英国最大的笔记本电脑直销专家:Laptops Direct
2019/07/20 全球购物
屈臣氏乌克兰:Watsons UA
2019/10/29 全球购物
高级3D打印市场:Gambody
2019/12/26 全球购物
一套Delphi的笔试题二
2013/05/11 面试题
2015年班长个人工作总结
2015/04/03 职场文书
承诺书模板大全
2015/05/04 职场文书
小学科学课教学反思
2016/02/23 职场文书
2019年个人工作总结范文
2019/03/25 职场文书
Python使用MapReduce进行简单的销售统计
2022/04/22 Python