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脚本
Feb 10 Python
python双向链表实现实例代码
Nov 21 Python
python使用正则表达式替换匹配成功的组
Nov 17 Python
使用python画个小猪佩奇的示例代码
Jun 06 Python
pandas带有重复索引操作方法
Jun 08 Python
详解Python下Flask-ApScheduler快速指南
Nov 04 Python
pandas取出重复数据的方法
Jul 04 Python
python elasticsearch环境搭建详解
Sep 02 Python
python实现通过队列完成进程间的多任务功能示例
Oct 28 Python
Django连接数据库并实现读写分离过程解析
Nov 13 Python
pytorch数据预处理错误的解决
Feb 20 Python
Python爬虫headers处理及网络超时问题解决方案
Jun 19 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
CI框架源码阅读,系统常量文件constants.php的配置
2013/02/28 PHP
解析PHP中的file_get_contents获取远程页面乱码的问题
2013/06/25 PHP
PHP三元运算的2种写法代码实例
2014/05/12 PHP
一张表搞清楚php is_null、empty、isset的区别
2015/07/07 PHP
PHP MVC框架路由学习笔记
2016/03/02 PHP
php 微信开发获取用户信息如何实现
2016/12/13 PHP
基于jquery用于查询操作的实现代码
2010/05/10 Javascript
javascript innerHTML使用分析
2010/12/03 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
2013/11/30 Javascript
javascript随机之洗牌算法深入分析
2014/06/07 Javascript
使用JavaScript进行进制转换将字符串转换为十进制
2014/09/21 Javascript
JS中产生标识符方式的演变
2015/06/12 Javascript
JavaScript实现非常简单实用的下拉菜单效果
2015/08/27 Javascript
使用jquery的jsonp如何发起跨域请求及其原理详解
2017/08/17 jQuery
vue scroller返回页面记住滚动位置的实例代码
2018/01/29 Javascript
layui实现form表单同时提交数据和文件的代码
2019/10/25 Javascript
vue页面切换项目实现转场动画的方法
2019/11/12 Javascript
js实现弹幕墙效果
2020/12/10 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 战前探营!
2014/05/21 DOTA
[01:17]Ti4 循环赛第一日回顾
2014/07/11 DOTA
Python常用模块用法分析
2014/09/08 Python
win系统下为Python3.5安装flask-mongoengine 库
2016/12/20 Python
使用Python制作微信跳一跳辅助
2018/01/31 Python
在python 不同时区之间的差值与转换方法
2019/01/14 Python
python的time模块和datetime模块实例解析
2019/11/29 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
2020/03/04 Python
详解rem 适配布局
2018/10/31 HTML / CSS
中国最大的名表商城:万表网
2016/08/29 全球购物
为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限
2012/12/13 面试题
2014年3.15团委活动总结
2014/03/16 职场文书
三年级学生评语
2014/04/23 职场文书
幼儿园课题实施方案
2014/05/14 职场文书
《中国梦我的梦》小学生演讲稿
2014/08/20 职场文书
2014年学校团委工作总结
2014/12/20 职场文书
2015年实习生工作总结报告
2015/04/28 职场文书
win10电脑双屏显示一个黑屏怎么办?win10电脑双屏显示一个黑屏解决方法
2022/07/15 数码科技