NumPy cumsum – 完整指南

您好,欢迎来到本关于 Numpy cumsum的教程。在本教程中,我们将学习 NumPy cumsum() 方法,并看到很多相关示例。那么让我们开始吧!


什么是 NumPy cumsum?

累积是给定序列的部分和的序列。如果{a, b, c, d, e, f,…..}是一个序列,则其累积和表示为{a, a+b, a+b+c, a+b+c+d,… .} .

NumPy 中的方法cumsum()返回输入数组沿指定轴的元素的累积和。它可以是展平数组的累积和、数组元素沿行的累积和或数组元素沿列的累积和。 

我们将在本教程的后续部分中看到每个示例的示例。


NumPy cumsum 的语法

numpy.cumsum(a, axis=None, dtype=None, out=None)
范围 描述 必需/可选
A 输入数组。 必需的
计算数组累积和的轴。它可以是axis=0(即沿列)或axis=1(即沿行)或axis=None(这意味着要返回展平数组的累积和)。 选修的
dtype(数据类型) 要返回的数组的数据类型。 选修的
出去 用于放置结果的替代输出数组。它必须具有与预期输出相同的形状和长度。 选修的

返回:
包含输出的新数组。如果提到了out,则返回对其的引用。


例子

现在让我们开始使用 numpy.cumsum 方法,以便我们可以理解输出。

单个元素的累计和

import numpy as np
 
a = 5
ans = np.cumsum(a)
 
print("a =", a)
print("Cumulative sum =", ans)

输出:

a = 5
Cumulative sum = [5]

空数组的 Numpy 累积和

import numpy as np
 
a = []
ans = np.cumsum(a)
 
print("a =", a)
print("Cumulative sum =", ans)

输出:

a = []
Cumulative sum = []

一维数组的 Numpy 累积和

import numpy as np
 
a = [5, 3, 2, 8]
ans = np.cumsum(a)
 
print("a =", a)
print("Cumulative sum of the array =", ans)

输出:

a = [5, 3, 2, 8]
Cumulative sum of the array = [ 5  8 10 18]

此处,累积和计算为 5、5+3、5+3+2、5+3+2+8,结果为 5、8、10、18。


Numpy 二维数组的累积和

import numpy as np
 
a = [[4, 3], [9, 10]]
ans = np.cumsum(a)
 
print("a =", a)
print("Cumulative sum of the array =", ans)

输出:

a = [[4, 3], [9, 10]]
Cumulative sum of the array = [ 4  7 16 26]

对于二维数组,当没有提到轴时,首先将数组展平,然后计算其累积和。
在上面的例子中,数组首先被展平为 [4, 3, 9, 10],即逐行,然后其累积和计算为 [4, 4+3, 4+3+9, 4+3+9 +10] 产生函数返回的数组 [4, 7, 16, 26]。


将数组的 Numpy.cumsum() 返回为 float 数据类型

这与上面的示例相同,只是这里返回的值是浮点数据类型。

import numpy as np
 
a = [5, 3, 2, 8]
ans = np.cumsum(a, dtype=float)
 
print("a =", a)
print("Cumulative sum of the array =", ans)

输出:

a = [5, 3, 2, 8]
Cumulative sum of the array = [ 5.  8. 10. 18.]

沿轴的累积和

轴 = 0

import numpy as np
 
a = [[1, 5, 3], [7, 10, 4]]
# cumulative sum along axis=0
ans = np.cumsum(a, axis=0)
 
print("a =\n", a)
print("Cumulative sum of the array =\n", ans)

输出:

a =
 [[1, 5, 3], [7, 10, 4]]
Cumulative sum of the array =
 [[ 1  5  3]
 [ 8 15  7]]

此处,第一行保持原样,第二行包含按 1+7、5+10 和 3+4 计算得出的累积和,结果为 8、15 和 7。

轴 = 1

import numpy as np
 
a = [[1, 5, 3], [7, 10, 4]]
# cumulative sum along axis=1
ans = np.cumsum(a, axis=1)
 
print("a =\n", a)
print("Cumulative sum of the array =\n", ans)

输出:

a =
 [[1, 5, 3], [7, 10, 4]]
Cumulative sum of the array =
 [[ 1  6  9]
 [ 7 17 21]]

此处,第一列保持原样,第二列包含按 1+5, 7+10 计算得出的累积和,结果为 6, 17,第三列包含累积和 1+5+3, 7+10+ 4即9和21。


概括

就这样!在本教程中,我们了解了 Numpy cumsum 方法,并使用该方法练习了不同类型的示例。


参考