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 08 Python
Python import用法以及与from...import的区别
May 28 Python
Python告诉你木马程序的键盘记录原理
Feb 02 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
Feb 26 Python
对python特殊函数 __call__()的使用详解
Jul 02 Python
pytorch::Dataloader中的迭代器和生成器应用详解
Jan 03 Python
在django admin详情表单显示中添加自定义控件的实现
Mar 11 Python
Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)
Apr 08 Python
浅谈anaconda python 版本对应关系
Oct 07 Python
Python 中的单分派泛函数你真的了解吗
Jun 22 Python
Python Django获取URL中的数据详解
Nov 01 Python
Python线程池与GIL全局锁实现抽奖小案例
Apr 13 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数组函数序列之array_keys() - 获取数组键名
2011/10/30 PHP
PHP运行环境配置与开发环境的配置(图文教程)
2013/06/04 PHP
PHP取余函数介绍MOD(x,y)与x%y
2014/05/15 PHP
PHP实现创建微信自定义菜单的方法示例
2017/07/14 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
PHP面向对象多态性实现方法简单示例
2017/09/27 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
2018/10/10 PHP
JavaScript 在各个浏览器中执行的耐性
2009/04/06 Javascript
前端开发部分总结[兼容性、DOM操作、跨域等](持续更新)
2010/03/04 Javascript
js中arguments的用法(实例讲解)
2013/11/30 Javascript
Jquery 实现table样式的设定
2015/01/28 Javascript
nodejs实现遍历文件夹并统计文件大小
2015/05/28 NodeJs
javascript记住用户名和登录密码(两种方式)
2015/08/04 Javascript
利用JS判断鼠标移入元素的方向
2016/12/11 Javascript
Centos6.8下Node.js安装教程
2017/05/12 Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
2017/07/12 jQuery
js实现数组和对象的深浅拷贝
2017/09/30 Javascript
jQuery图片加载失败替换默认图片方法汇总
2017/11/29 jQuery
NVM安装nodejs的方法实用步骤
2019/01/16 NodeJs
从0到1构建vueSSR项目之路由的构建
2019/03/07 Javascript
详解微信小程序图片地扯转base64解决方案
2019/08/18 Javascript
d3.js 地铁轨道交通项目实战
2019/11/27 Javascript
windows如何把已安装的nodejs高版本降级为低版本(图文教程)
2020/12/14 NodeJs
[50:05]VGJ.S vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
python实现获取序列中最小的几个元素
2014/09/25 Python
jupyter notebook引用from pyecharts.charts import Bar运行报错
2020/04/23 Python
在pycharm 中添加运行参数的操作方法
2019/01/19 Python
如何用Python破解wifi密码过程详解
2019/07/12 Python
Pycharm同步远程服务器调试的方法步骤
2020/11/04 Python
H5 video poster属性设置视频封面的方法
2020/05/25 HTML / CSS
英国足球店:UK Soccer Shop
2017/11/19 全球购物
美国牙科折扣计划:DentalPlans.com
2019/08/26 全球购物
人力资源行政经理自我评价
2013/10/23 职场文书
人力资源专员岗位职责
2014/01/30 职场文书
基于JavaScript实现省市联动效果
2021/06/22 Javascript
openEuler 搭建java开发环境的详细过程
2022/06/10 Servers