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基础教程之对象和类的实际运用
Aug 29 Python
Python中的面向对象编程详解(上)
Apr 13 Python
Python脚本文件打包成可执行文件的方法
Jun 02 Python
Python日期的加减等操作的示例
Aug 15 Python
windows10下python3.5 pip3安装图文教程
Apr 02 Python
在Python中使用gRPC的方法示例
Aug 08 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
Oct 16 Python
详解用python写网络爬虫-爬取新浪微博评论
May 10 Python
Flask模板引擎之Jinja2语法介绍
Jun 26 Python
python中sympy库求常微分方程的用法
Apr 28 Python
Django基于Models定制Admin后台实现过程解析
Nov 11 Python
python解决12306登录验证码的实现
Apr 18 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生成静态HTML文档的原理
2012/10/29 PHP
php 模拟POST提交的2种方法详解
2013/06/17 PHP
使用Thinkphp框架开发移动端接口
2015/08/05 PHP
PHP实现的DES加密解密实例代码
2016/04/06 PHP
PHP实现根据数组的值进行分组的方法
2017/04/20 PHP
PHP调用全国天气预报数据接口查询天气示例
2019/02/20 PHP
php上传后台无法收到数据解决方法
2019/10/28 PHP
一个不错的用JavaScript实现的UBB编码函数
2007/03/09 Javascript
jQuery-Tools-overlay 使用介绍
2012/07/14 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
2014/10/17 Javascript
jQuery设置和移除文本框默认值的方法
2015/03/09 Javascript
jQuery平滑旋转幻灯片特效代码分享
2015/09/07 Javascript
详解网站中图片日常使用以及优化手法
2017/01/09 Javascript
C#微信小程序服务端获取用户解密信息实例代码
2017/03/10 Javascript
详解Vue 开发模式下跨域问题
2017/06/06 Javascript
本地搭建微信小程序服务器的实现方法
2017/10/27 Javascript
JavaScript 正则命名分组【推荐】
2018/06/07 Javascript
Vue 中如何正确引入第三方模块的方法步骤
2019/05/05 Javascript
Python常见格式化字符串方法小结【百分号与format方法】
2016/09/18 Python
python爬虫实现教程转换成 PDF 电子书
2017/02/19 Python
Pytorch实现LSTM和GRU示例
2020/01/14 Python
python可迭代对象去重实例
2020/05/15 Python
css3动画 小球滚动 js控制动画暂停
2019/11/29 HTML / CSS
阿迪达斯意大利在线商店:adidas意大利
2016/09/19 全球购物
德国婴儿服装和婴儿用品购买网站:Baby Sweets
2019/12/08 全球购物
Internal修饰符有什么含义
2013/07/10 面试题
临床医学专业个人的自我评价
2013/09/27 职场文书
幼儿园中班下学期评语
2014/04/18 职场文书
祖国在我心中演讲稿400字
2014/05/04 职场文书
中秋节活动总结
2014/08/29 职场文书
新闻发布会活动策划方案
2014/09/15 职场文书
邀请书模板
2015/02/02 职场文书
幼儿园父亲节活动总结
2015/02/12 职场文书
个人德育工作总结
2015/03/05 职场文书
2016年校园重阳节广播稿
2015/12/18 职场文书
Python3 使用pip安装git并获取Yahoo金融数据的操作
2021/04/08 Python