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]]
``
相关推荐
m0_7467523014 分钟前
c++怎么利用std--variant处理多种二进制子协议包的自动分支解析【进阶】
jvm·数据库·python
m0_734949797 小时前
MySQL如何配置定时清理过期备份文件_find命令与保留周期策略
jvm·数据库·python
m0_514520578 小时前
MySQL索引优化后性能没提升_通过EXPLAIN查看索引命中率
jvm·数据库·python
H Journey8 小时前
Python 国内pip install 安装缓慢
python·pip·install 加速
王_teacher8 小时前
机器学习 矩阵求导 完整公式+严谨推导
人工智能·线性代数·考研·机器学习·矩阵·线性回归
Polar__Star9 小时前
如何在 AWS Lambda 中正确使用临时凭证生成 S3 预签名 URL
jvm·数据库·python
m0_743623929 小时前
React 自定义 Hook 的命名规范与调用规则详解
jvm·数据库·python
FreakStudio10 小时前
无硬件学LVGL—定时器篇:基于Web模拟器+MicroPython速通GUI开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
gCode Teacher 格码致知10 小时前
Python提高:pytest的简单案例-由Deepseek产生
python·pytest
不要秃头的小孩11 小时前
力扣刷题——509. 斐波那契数
python·算法·leetcode·动态规划