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解决方案:WindowsError: [Error 2]
Aug 28 Python
Python 基础之字符串string详解及实例
Apr 01 Python
Python Flask-web表单使用详解
Nov 18 Python
Python的numpy库中将矩阵转换为列表等函数的方法
Apr 04 Python
pycharm debug功能实现跳到循环末尾的方法
Nov 29 Python
python3在同一行内输入n个数并用列表保存的例子
Jul 20 Python
python英语单词测试小程序代码实例
Sep 09 Python
500行代码使用python写个微信小游戏飞机大战游戏
Oct 16 Python
如何使用repr调试python程序
Feb 28 Python
Python 存取npy格式数据实例
Jul 01 Python
Python异常处理机制结构实例解析
Jul 23 Python
Python自动操作神器PyAutoGUI的使用教程
Jun 16 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 更新数据库中断的解决方法
2009/06/05 PHP
使用PHPMailer实现邮件发送代码分享
2014/10/23 PHP
php去除字符串中空字符的常用方法小结
2015/03/17 PHP
php bootstrap实现简单登录
2016/03/08 PHP
PHP上传图片类显示缩略图功能
2016/06/30 PHP
PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案
2017/10/17 PHP
javascript 打开页面window.location和window.open的区别
2010/03/17 Javascript
模仿百度三维地图的js数据分享
2011/05/12 Javascript
Javascript实现的类似Google的Div拖动效果代码
2011/08/09 Javascript
js格式化金额可选是否带千分位以及保留精度
2014/01/28 Javascript
用jquery修复在iframe下的页面锚点失效问题
2014/08/22 Javascript
ECMAScript6块级作用域及新变量声明(let)
2015/06/12 Javascript
javascript实现点击单选按钮链接转向对应网址的方法
2015/08/12 Javascript
跟我学习javascript的异步脚本加载
2015/11/20 Javascript
jQuery遍历DOM节点操作之filter()方法详解
2016/04/14 Javascript
JS修改地址栏参数实例代码
2016/06/14 Javascript
功能强大的Bootstrap效果展示(二)
2016/08/03 Javascript
Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
2016/12/13 Javascript
Node.js系列之安装配置与基本使用(1)
2019/08/30 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
2020/07/07 Javascript
[36:17]DOTA2上海特级锦标赛 - VGL音乐会全集
2016/03/06 DOTA
从Python程序中访问Java类的简单示例
2015/04/20 Python
Python实现的飞速中文网小说下载脚本
2015/04/23 Python
Python实现代码统计工具(终极篇)
2016/07/04 Python
Python使用剪切板的方法
2017/06/06 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
2018/08/30 Python
Python笔记之工厂模式
2019/11/20 Python
python 在sql语句中使用%s,%d,%f说明
2020/06/06 Python
python工具快速为音视频自动生成字幕(使用说明)
2021/01/27 Python
荷兰手表网站:Watch2Day
2018/07/02 全球购物
e路東瀛(JAPANiCAN)香港:日本旅游、日本酒店和温泉旅馆预订
2018/11/21 全球购物
Myprotein瑞士官方网站:运动营养和健身网上商店
2019/09/25 全球购物
班组长安全生产职责
2013/12/16 职场文书
《窗前的气球》教学反思
2014/04/07 职场文书
2014和解协议书范文
2014/09/15 职场文书
Opencv实现二维直方图的计算及绘制
2021/07/21 Python