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 httplib,smtplib使用方法
Sep 06 Python
Python中还原JavaScript的escape函数编码后字符串的方法
Aug 22 Python
Python基础篇之初识Python必看攻略
Jun 23 Python
详解python的几种标准输出重定向方式
Aug 15 Python
利用Python查看目录中的文件示例详解
Aug 28 Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
Jan 06 Python
Python Paramiko模块的使用实际案例
Feb 01 Python
Python格式化输出%s和%d
May 07 Python
python网络应用开发知识点浅析
May 28 Python
python 获取等间隔的数组实例
Jul 04 Python
解决pyCharm中 module 调用失败的问题
Feb 12 Python
python 三种方法实现对Excel表格的读写
Nov 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
解决MySQL中文输出变成问号的问题
2008/06/05 PHP
php 数组的创建、调用和更新实现代码
2009/03/09 PHP
PHP中文件缓存转内存缓存的方法
2011/12/06 PHP
PHP rsa加密解密使用方法
2015/04/27 PHP
[原创]php简单隔行变色功能实现代码
2016/07/09 PHP
PHP中实现中文字串截取无乱码的解决方法
2018/05/29 PHP
JS实现的省份级联实例代码
2013/06/24 Javascript
JS文本框默认值处理详解
2013/07/10 Javascript
无闪烁更新网页内容JS实现
2013/12/19 Javascript
js实现遮罩层弹出框的方法
2015/01/15 Javascript
javascript递归回溯法解八皇后问题
2015/04/22 Javascript
JavaScript函数使用的基本教程
2015/06/04 Javascript
vue中用H5实现文件上传的方法实例代码
2017/05/27 Javascript
本地存储localStorage用法详解
2017/07/31 Javascript
详解使用Vue Router导航钩子与Vuex来实现后退状态保存
2017/09/11 Javascript
微信小程序实现点击按钮修改字体颜色功能【附demo源码下载】
2017/12/05 Javascript
原生js添加一个或多个类名的方法分析
2019/07/30 Javascript
天翼开放平台免费短信验证码接口使用实例
2013/12/18 Python
详谈python在windows中的文件路径问题
2018/04/28 Python
Python实现的读取文件内容并写入其他文件操作示例
2019/04/09 Python
Python 正则表达式爬虫使用案例解析
2019/09/23 Python
python 实现方阵的对角线遍历示例
2019/11/29 Python
css3制作彩色边线3d立体按钮的示例(css3按钮)
2014/05/06 HTML / CSS
AmazeUI 点击元素显示全屏的实现
2020/08/25 HTML / CSS
万得城电器土耳其网站:欧洲第一大电子产品零售商
2016/10/07 全球购物
英国家用电器折扣网站:Electrical Discount UK
2018/09/17 全球购物
德国珠宝和手表在线商店:VALMANO
2019/03/24 全球购物
英国家居装饰品、户外家具和玻璃器皿购物网站:Rinkit.com
2019/11/04 全球购物
生物技术毕业生自荐信
2013/10/23 职场文书
婚礼新郎父母答谢词
2014/01/16 职场文书
四川成都导游欢迎词
2014/01/18 职场文书
军训考核自我鉴定
2014/02/13 职场文书
暑期研修感言
2014/02/17 职场文书
详解MySQL中的主键与事务
2021/05/27 MySQL
Windows 11上手初体验:任务栏和开始菜单等迎来大改
2021/11/21 数码科技
Win11任务栏无法正常显示 资源管理器不停重启的解决方法
2022/07/07 数码科技