python cumsum函数的具体使用

yipeiwu_com6年前Python基础

这个函数的功能是返回给定axis上的累计和函数的原型如下:详见 doc

 numpy.cumsum(a, axis=None, dtype=None, out=None)
    Return the cumulative sum of the elements along a given axis.

官方的文档是没有详细解释,本人做了测试自己把理解的写下。

1.对于一维输入a(可以是list,可以是array,假设a=[1, 2, 3, 4, 5, 6, 7] ,就是当前列之前的和加到当前列上,如下:

>>>import numpy as np
>>> a=[1,2,3,4,5,6,7]
>>> np.cumsum(a)
array([ 1,  3,  6, 10, 15, 21, 28, 36, 45, 55, 75, 105])

2.对于二维输入a,axis=0(第1行不动,将第1行累加到其他行);axis=1(进入最内层,转化成列处理。第1列不动,将第1列累加到其他列),如下:

>>>import numpy as np
>>> c=[[1,2,3],[4,5,6],[7,8,9]]
>>> np.cumsum(c,axis=0)
array([[ 1, 2, 3],
    [ 5, 7, 9],
    [12, 15, 18]])
>>> np.cumsum(c,axis=1)
array([[ 1, 3, 6],
    [ 4, 9, 15],
    [ 7, 15, 24]])

3.对于三维输入a, axis=0 (第1行不动,将第1行累加到其他行); axis=1(进入第2层,每个第二层第1行不动,累加到其他行); axis=2(进入最内层,转化成列处理。第1列不动,将其累加到其他列),注意维数从外到内是0-2编号,如下:

>>>import numpy as np
>>> a
[[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 20, 30]]]
>>> np.cumsum(a,axis=0)
array([[[ 1, 2, 3],
    [ 4, 5, 6]],
 
    [[ 8, 10, 12],
    [14, 25, 36]]])
>>> np.cumsum(a,axis=1)
array([[[ 1, 2, 3],
    [ 5, 7, 9]],
 
    [[ 7, 8, 9],
    [17, 28, 39]]])
>>> np.cumsum(a,axis=2)
array([[[ 1, 3, 6],
    [ 4, 9, 15]],
 
    [[ 7, 15, 24],
    [10, 30, 60]]])

a是一个 2 x 2 x 3 的 list,解释起来有点麻烦,先把 a 变种风格

[ //axis=0
       [//axis=1。同时是axis=0所对应的第 1 行,注意是此中括号包含的整个内容
          [1, 2, 3], //axis=2。同时是 axis=1所对的第1行
          [4, 5, 6] //axis=2
       ],
       [//axis=1。同时是axis=0所对应的第 2行
          [7, 8, 9], //axis=2。同时是 axis=1所对的第1行
          [10, 20, 30] //axis=2
       ],
   ]

axis=0说明,第1维度,包含2行,绿色中括号的list,第1行(也就是由1,2,3,4,5,6组成的list)不动,累加到第二行,注意是累加
axis=1说明,第2维度,  每个绿色中括号里第1行不变,也就是 [1,2,3]和[7,8,9]不动,累加到同兄弟行(同属一个中括号的行)
axis=2说明,第3维度,也是最内层,转化成列处理,紫色数字所在列不动,累加到其他列上

对于更高维度,可以参考3维来从外向内剥离的方式理解

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

简单瞅瞅Python vars()内置函数的实现

0.偶然间看到一个奇怪的现象 >>> x = 1 >>> a = var() >>> a['x'] 1 这是啥操作??用h...

Python如何读取文件中图片格式

这篇文章主要介绍了Python如何读取文件中图片格式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 正常情况下,图片命名的后缀和图片的...

python简单鼠标自动点击某区域的实例

功能:间隔5毫秒,快速点击屏幕某区域,循环45000000次 from ctypes import * import time time.sleep(5) for i in rang...

在Python中操作文件之read()方法的使用教程

 read()方法读取文件size个字节大小。如果读取命中获得EOF大小字节之前,那么它只能读取可用的字节。 语法 以下是read()方法的语法: fileObject.r...

TENSORFLOW变量作用域(VARIABLE SCOPE)

举例说明 TensorFlow中的变量一般就是模型的参数。当模型复杂的时候共享变量会无比复杂。 官网给了一个case,当创建两层卷积的过滤器时,每输入一次图片就会创建一次过滤器对应的变...