,,python numpy中cumsum的用法详解

,,python numpy中cumsum的用法详解

本文主要介绍了python numpy中cumsum用法的详细说明。通过示例代码详细介绍,对大家的学习或工作有一定的参考价值。有需要的朋友下面跟边肖学习。

计算轴向元素的累积和,并返回中间结果的数组。

关键是返回值是“一组中间结果”

下面的代码在python3.6版成功运行!

看下面的代码定义了一个2*2*3的数组,所以它的形状是2,2,3,索引分别是0,1,2。

形状

指数

2

0

2

一个

2

代码:

将numpy作为np导入

arr=np.array([[[1,2,3],[8,9,12]],[[1,2,4],[2,4,5]])# 2 * 2 * 3

print(arr.cumsum(0))

打印(arr.cumsum(1))

打印(arr.cumsum(2))

输出结果:

#cumsum(0)

[[[ 1 2 3]

[ 8 9 12]]

[[ 2 4 7]

[10 13 17]]]

#累计(1)

[[[ 1 2 3]

[ 9 11 15]]

[[ 1 2 4]

[ 3 6 9]]]

#累计(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开始,实现后面元素的累加。

四维数组实现

看一个索引值为0,1,2,3的四维数组2*2*2*4。

代码:

将numpy作为np导入

arr=np.arange(32)。整形((2,2,2,4))

打印(排列)

print(arr.cumsum(0))

打印(arr.cumsum(1))

打印(arr.cumsum(2))

打印(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开始实现累加,记录中间结果。

这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: