在本文中,我们将介绍Numpy中的累加和累乘运算。累加/累乘是指在一个数组中按照一定的规则对元素进行相加或相乘的操作,通常返回一个新的数组。
累加运算
在Numpy中,我们可以使用cumsum函数对数组进行累加运算。cumsum函数将数组每个元素顺序相加,并返回一个新的数组:
python
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(np.cumsum(arr)) # [ 1 3 6 10 15]
上述例子中,我们定义了一个数组arr,然后使用cumsum函数对其进行累加运算,并将结果输出到控制台。
另外,我们还可以对多维数组进行累加运算。在这种情况下,cumsum函数将按照行major的顺序逐个计算累加值,相当于先对行进行累加,然后对每个行的累加结果再进行累加:
python
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(np.cumsum(arr)) # [ 1 3 6 10 15 21 28 36 45]
上述例子中,我们定义了一个2维的数组arr,然后使用cumsum函数对其进行累加运算,并将结果输出到控制台。
累乘运算
在Numpy中,我们可以使用cumprod函数对数组进行累乘运算。cumprod函数将数组每个元素顺序相乘,并返回一个新的数组:
python
arr = np.array([1, 2, 3, 4, 5])
print(np.cumprod(arr)) # [ 1 2 6 24 120]
上述例子中,我们定义了一个数组arr,然后使用cumprod函数对其进行累乘运算,并将结果输出到控制台。
与累加运算类似,我们还可以对多维数组进行累乘运算。在这种情况下,cumprod函数将按照行major的顺序逐个计算累乘值,相当于先对行进行累乘,然后对每个行的累乘结果再进行累乘:
python
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(np.cumprod(arr)) # [ 1 2 6 24 120 720 5040 40320 362880]
上述例子中,我们定义了一个2维的数组arr,然后使用cumprod函数对其进行累乘运算,并将结果输出到控制台。
累加/累乘的轴向计算
在Numpy中,cumsum和cumprod函数可以沿着指定的轴进行计算。我们可以通过axis参数指定要进行累加/累乘的轴:
python
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(np.cumsum(arr, axis=0)) # [[ 1 2 3]
# [ 5 7 9]
# [12 15 18]]
print(np.cumsum(arr, axis=1)) # [[ 1 3 6]
# [ 4 9 15]
# [ 7 15 24]]
print(np.cumprod(arr, axis=0)) # [[ 1 2 3]
# [ 4 10 18]
# [ 28 80 162]]
print(np.cumprod(arr, axis=1)) # [[1 2 6]
# [ 4 20 120]
# [ 7 56 504]]
The above see https://deepinout.com/numpy/numpy-questions/1043_numpy_cumulative_additionmultiplication_in_numpy.html
python
import numpy as np
# 创建一个矩阵
matrix = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# 对矩阵的每一列进行累加
cumulative_sum = np.cumsum(matrix, axis=0)
print(cumulative_sum)
# 对矩阵的每一行进行累加
cumulative_sum = np.cumsum(matrix, axis=1)
print(cumulative_sum)
python
[[ 1 2 3]
[ 5 7 9]
[12 15 18]]
`
[[ 1 3 6]
[ 4 9 15]
[ 7 15 24]]
``