本文主要介绍了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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。