numpy.cumsum
是 NumPy 中的一个方法,用于计算数组元素的累积和(cumulative sum)。它沿着指定轴对元素进行逐个累加,生成一个新的数组,表示每个位置的累加结果。
语法:
numpy.cumsum(a, axis=None, dtype=None, out=None)
参数说明:
a
:输入数组。axis
:累加的轴,默认是沿平坦数组(即把数组展平成一维数组)进行累加。如果指定轴,则沿该轴进行累加。dtype
:累加时使用的数据类型,默认使用输入数组的类型。如果指定了dtype
,则会将累加的结果转换为该类型。out
:用于存储输出结果的数组,必须与输入数组形状相同。
返回值:
返回一个与输入数组 a
形状相同的数组,包含累积和的结果。
示例代码:
1. 一维数组的累积和:
import numpy as np
a = np.array([1, 2, 3, 4])
result = np.cumsum(a)
print(result) # [ 1 3 6 10]
在这个例子中,累积和的计算过程为:[1, 1+2, 1+2+3, 1+2+3+4]
,即 [1, 3, 6, 10]
。
2. 二维数组的累积和:
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
result = np.cumsum(a)
print(result)
# [ 1 3 6 10 15 21]
默认情况下,np.cumsum
会将二维数组展平为一维数组进行累加。
3. 指定轴进行累积和:
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
result_axis0 = np.cumsum(a, axis=0) # 沿着 axis=0 进行累加
result_axis1 = np.cumsum(a, axis=1) # 沿着 axis=1 进行累加
print(result_axis0)
# [[ 1 2 3]
# [ 5 7 9]]
print(result_axis1)
# [[ 1 3 6]
# [ 4 9 15]]
axis=0
:沿着行的方向(垂直方向)累加。每一列的元素依次相加。axis=1
:沿着列的方向(水平方向)累加。每一行的元素依次相加。
4. 使用 dtype
参数:
你可以使用 dtype
参数来指定累积和的输出类型。例如,如果数组是 int
类型,你可以指定 dtype
为 float
,这样累积结果会是浮点数。
import numpy as np
a = np.array([1, 2, 3], dtype=int)
result = np.cumsum(a, dtype=float)
print(result) # [ 1. 3. 6.]
5. 使用 out
参数:
你可以使用 out
参数来将累积和的结果存储到一个现有的数组中:
import numpy as np
a = np.array([1, 2, 3])
out = np.zeros_like(a)
np.cumsum(a, out=out)
print(out) # [ 1 3 6]
总结:
np.cumsum
是一个用于计算累积和的有用函数,支持灵活的轴和数据类型选择,非常适合用于各种数据处理和分析场景。