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 拷贝对象(深拷贝deepcopy与浅拷贝copy)
Sep 06 Python
分享Python开发中要注意的十个小贴士
Aug 30 Python
Python中用字符串调用函数或方法示例代码
Aug 04 Python
简单谈谈python中的语句和语法
Aug 10 Python
python3利用Dlib19.7实现人脸68个特征点标定
Feb 26 Python
python写入已存在的excel数据实例
May 03 Python
Python实用技巧之利用元组代替字典并为元组元素命名
Jul 11 Python
python中的for循环
Sep 28 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
Oct 11 Python
Python数据类型之List列表实例详解
May 08 Python
TensorFlow 多元函数的极值实例
Feb 10 Python
Python用摘要算法生成token及检验token的示例代码
Dec 01 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/05/27 PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
2014/05/10 PHP
PHP线程的内存回收问题
2016/07/08 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
2019/10/08 PHP
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
2007/02/15 Javascript
JavaScript/jQuery 表单美化插件小结
2012/02/14 Javascript
onkeydown事件解决按回车键直接提交数据的需求
2013/04/11 Javascript
jQuery中not()方法用法实例
2015/01/06 Javascript
原生javascript实现Tab选项卡切换功能
2015/01/12 Javascript
jquery使用ul模拟select实现表单美化的方法
2015/08/18 Javascript
原生JS:Date对象全面解析
2016/09/06 Javascript
bootstrap表单按回车会自动刷新页面的解决办法
2017/03/08 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
2017/04/27 Javascript
node.js读取Excel数据(下载图片)的方法示例
2018/08/02 Javascript
Vue+element-ui 实现表格的分页功能示例
2018/08/18 Javascript
layui+jquery支持IE8的表格分页方法
2019/09/28 jQuery
vue中注册自定义的全局js方法
2019/11/15 Javascript
详细介绍解决vue和jsp结合的方法
2020/02/06 Javascript
[01:56]2014DOTA2西雅图邀请赛 MVP外卡赛老队长精辟点评
2014/07/09 DOTA
python目录操作之python遍历文件夹后将结果存储为xml
2014/01/27 Python
Dlib+OpenCV深度学习人脸识别的方法示例
2019/05/14 Python
对Python中小整数对象池和大整数对象池的使用详解
2019/07/09 Python
Python企业编码生成系统之系统主要函数设计详解
2019/07/26 Python
python创建n行m列数组示例
2019/12/02 Python
python如何写出表白程序
2020/06/01 Python
通过代码实例了解Python sys模块
2020/09/14 Python
python解决OpenCV在读取显示图片的时候闪退的问题
2021/02/23 Python
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
2016/10/23 HTML / CSS
房屋继承公证书
2014/04/10 职场文书
群众路线对照检查材料
2014/09/22 职场文书
怎样写好工作计划
2019/04/10 职场文书
JS异步堆栈追踪之为什么await胜过Promise
2021/04/28 Javascript
解决golang post文件时Content-Type出现的问题
2021/05/02 Golang
pycharm 如何查看某一函数源码的快捷键
2021/05/12 Python
基于Redis的List实现特价商品列表功能
2021/08/30 Redis
Winsows11性能如何? win11性能测评多核竟比Win10差了10%
2021/11/21 数码科技