python numpy中cumsum的用法详解


Posted in Python onOctober 17, 2019

Cumsum :计算轴向元素累加和,返回由中间结果组成的数组

重点就是返回值是“由中间结果组成的数组”

以下代码在python3.6版本运行成功!

下面看代码,定义一个2*2*3的数组,所以其shape是2,2,3,索引分别0,1,2

shape 索引
2 0
2 1
3 2

代码:

import numpy as np
arr = np.array([[[1,2,3],[8,9,12]],[[1,2,4],[2,4,5]]]) #2*2*3
print(arr.cumsum(0))
print(arr.cumsum(1))
print(arr.cumsum(2))

输出结果:

#cumsum(0)
[[[ 1  2  3]
  [ 8  9 12]]
 
 [[ 2  4  7]
  [10 13 17]]]
#cumsum(1)
[[[ 1  2  3]
  [ 9 11 15]]
 
 [[ 1  2  4]
  [ 3  6  9]]]
#cumsum(2)
[[[ 1  3  6]
  [ 8 17 29]]
 
 [[ 1  3  7]
  [ 2  6 11]]]

注释:

  • arr是一个2*2*3三维矩阵,索引值为0,1,2
  • cumsum(0):实现0轴上的累加:以最外面的数组元素为单位,以[[1,2,3],[8,9,12]]为开始实现后面元素的对应累加
  • cumsum(1):实现1轴上的累加:以中间数组元素为单位,以[1,2,3]为开始,实现后面元素的对应累加
  • cumsum(2):实现2轴上的累加:以最里面的元素为累加单位,即1为开始,实现后面的元素累加

四维数组实现

下面看一个四维数组2*2*2*4,索引值为0,1,2,3
代码:

import numpy as np
arr = np.arange(32).reshape((2,2,2,4))
print(arr)
print(arr.cumsum(0))
print(arr.cumsum(1))
print(arr.cumsum(2))
print(arr.cumsum(3))
arr:
[[[[ 0 1 2 3]
  [ 4 5 6 7]]
 
 [[ 8 9 10 11]
  [12 13 14 15]]]
 
 
 [[[16 17 18 19]
  [20 21 22 23]]
 
 [[24 25 26 27]
  [28 29 30 31]]]]

arr是一个2*2*2*4四维矩阵,索引值为0,1,2,3

cumsum(0):实现0轴上的累加即:以最外面数组元素为单位即

[[[ 0 1 2 3]
  [ 4 5 6 7]]
 
 [[ 8 9 10 11]
  [12 13 14 15]]]


[[[16 17 18 19]
  [20 21 22 23]]
 
 [[24 25 26 27]
  [28 29 30 31]]]]

对应位置元素相加起来

结果:

[[[[ 0 1 2 3]
  [ 4 5 6 7]]
 
 [[ 8 9 10 11]
  [12 13 14 15]]]
 
 
 [[[16 18 20 22]
  [24 26 28 30]]
 
 [[32 34 36 38]
  [40 42 44 46]]]]

cumsum(1):实现1轴上的累加即:以次外面元素为单位,累加:

[[ 0 1 2 3]
  [ 4 5 6 7]]


[[ 8 9 10 11]
  [12 13 14 15]]


[[16 17 18 19]
  [20 21 22 23]]


[[24 25 26 27]
  [28 29 30 31]]

累计过程产生的中间结果要记录到数组中

所以,结果:

[[[[ 0 1 2 3]
  [ 4 5 6 7]]
 
 [[ 8 10 12 14]     
  [16 18 20 22]]]
 
 
 [[[16 17 18 19]
  [20 21 22 23]]
 
 [[40 42 44 46]
  [48 50 52 54]]]]

cumsum(2)就对应从[ 0  1  2  3]数组元素开始实现累加,然后记录中间结果

cumsum(3)对应的是从最里面最小的数组元素,即从0开始实现累加,记录中间结果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python避免死锁方法实例分析
Jun 04 Python
python抓取网页中图片并保存到本地
Dec 01 Python
Python编写登陆接口的方法
Jul 10 Python
Python中常见的异常总结
Feb 20 Python
python学习入门细节知识点
Mar 29 Python
Python列表生成式与生成器操作示例
Aug 01 Python
Numpy 改变数组维度的几种方法小结
Aug 02 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
Sep 17 Python
利用anaconda作为python的依赖库管理方法
Aug 13 Python
Python 脚本实现淘宝准点秒杀功能
Nov 13 Python
Python中random模块常用方法的使用教程
Oct 04 Python
在python中对于bool布尔值的取反操作
Dec 11 Python
python hashlib加密实现代码
Oct 17 #Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
Oct 17 #Python
python模块常用用法实例详解
Oct 17 #Python
Python 使用元类type创建类对象常见应用详解
Oct 17 #Python
Python with关键字,上下文管理器,@contextmanager文件操作示例
Oct 17 #Python
浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估
Oct 17 #Python
Python 3.8正式发布重要新功能一览
Oct 17 #Python
You might like
PHP文本操作类
2006/11/25 PHP
PHP快速生成各种信息提示框的方法
2016/02/03 PHP
thinkPHP中session()方法用法详解
2016/12/08 PHP
基于jquery的图片懒加载js
2010/06/30 Javascript
JQuery AJAX提交中文乱码的解决方案
2010/07/02 Javascript
javascript学习笔记(十二) RegExp类型介绍
2012/06/20 Javascript
JS 实现Table相同行的单元格自动合并示例代码
2013/08/27 Javascript
javascript在myeclipse中报错的解决方法
2013/10/29 Javascript
Javascript弹出窗口的各种方法总结
2013/11/11 Javascript
node.js中的fs.lchown方法使用说明
2014/12/16 Javascript
使用jspdf生成pdf报表
2015/07/03 Javascript
全面解析Bootstrap中tooltip、popover的使用方法
2016/06/13 Javascript
Angular.js初始化之ng-app的自动绑定与手动绑定详解
2017/07/31 Javascript
页面缩放兼容性处理方法(zoom,Firefox火狐浏览器)
2017/08/29 Javascript
js使用ajax传值给后台,后台返回字符串处理方法
2018/08/08 Javascript
js实现黑白div块画空心的图形
2018/12/13 Javascript
vue实现动态显示与隐藏底部导航的方法分析
2019/02/11 Javascript
解决微信小程序云开发中获取数据库的内容为空的方法
2019/05/15 Javascript
layui中select,radio设置不生效的解决方法
2019/09/05 Javascript
javascript canvas检测小球碰撞
2020/04/17 Javascript
Python中用于计算对数的log()方法
2015/05/15 Python
对于Python装饰器使用的一些建议
2015/06/03 Python
简单解析Django框架中的表单验证
2015/07/17 Python
Django自定义用户认证示例详解
2018/03/14 Python
儿童python练习实例
2018/05/27 Python
Python实现投影法分割图像示例(一)
2020/01/17 Python
基于python实现微信好友数据分析(简单)
2020/02/16 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
2020/05/25 Python
Hotels.com南非:酒店预订
2017/11/02 全球购物
寻找迷宫的一条出路,o通路;X:障碍
2016/07/10 面试题
Oracle里面常用的数据字典有哪些
2014/02/14 面试题
元旦晚会感言
2014/03/12 职场文书
护理学院专科毕业生求职信
2014/06/28 职场文书
高中班主任评语
2014/12/30 职场文书
奠基仪式致辞
2015/07/30 职场文书
MySQL远程无法连接的一些常见原因总结
2022/09/23 MySQL