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]]
``
相关推荐
sduwcgg5 分钟前
kaggle配置
人工智能·python·机器学习
__lost27 分钟前
Python图像变清晰与锐化,调整对比度,高斯滤波除躁,卷积锐化,中值滤波钝化,神经网络变清晰
python·opencv·计算机视觉
海绵波波10732 分钟前
玉米产量遥感估产系统的开发实践(持续迭代与更新)
python·flask
逢生博客1 小时前
使用 Python 项目管理工具 uv 快速创建 MCP 服务(Cherry Studio、Trae 添加 MCP 服务)
python·sqlite·uv·deepseek·trae·cherry studio·mcp服务
堕落似梦1 小时前
Pydantic增强SQLALchemy序列化(FastAPI直接输出SQLALchemy查询集)
python
坐吃山猪2 小时前
Python-Agent调用多个Server-FastAPI版本
开发语言·python·fastapi
Bruce-li__3 小时前
使用Django REST Framework快速开发API接口
python·django·sqlite
小兜全糖(xdqt)3 小时前
python 脚本引用django中的数据库model
python·django
Arenaschi3 小时前
SQLite 是什么?
开发语言·网络·python·网络协议·tcp/ip
纪元A梦3 小时前
华为OD机试真题——推荐多样性(2025A卷:200分)Java/python/JavaScript/C++/C语言/GO六种最佳实现
java·javascript·c++·python·华为od·go·华为od机试题