Python对数组/矩阵进行累加-累乘-累除

在本文中,我们将介绍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]]
``
相关推荐
量化分析码农4 分钟前
【Python量化趋势跟踪实战 01】均线多头排列就是趋势开始吗:过滤与确认
python
lisw054 分钟前
Dayhoff的PAM替换矩阵理论评介!
线性代数·算法·矩阵
用户298698530147 分钟前
Python 实战:把代码写入 Word 文档的两种实现方式
后端·python·api
小小张说故事9 分钟前
Python 里 pickle 到底存了什么:拆开 __reduce__、__getstate__ 和那串能执行代码的字节码
python
reasonsummer19 分钟前
【教学类-150-03】20261108蝴蝶连连看html(一页2个版面、3个版面)
python·html
用户0190275816132 分钟前
用 Polars 快速分析 A 股 K 线:比 pandas 更快的列式处理
python
用户03321266636740 分钟前
使用 Python 轻松加密或解密 Excel 文档
python·excel
CyrusYiVPP2 小时前
手写 MCP Server:给问答机器人接上本地文件工具,Python 实战第 13 期
人工智能·python
特立独行的猫A2 小时前
cj-tauri:用仓颉写桌面与鸿蒙 PC 应用
java·后端·python
qq_1588954111111 小时前
AI 音乐生成完成后,音频 URL 为什么会过期?一套可恢复的交付方案
python·api·ai音乐