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]]
``
相关推荐
SunnyDays10111 小时前
Python 高效实现 Excel 与 TXT 文本文件之间的数据转换
python·excel转txt·文本转excel·excel转文本·txt转excel
硬件人某某某2 小时前
python基于卷积神经网络的桥梁裂缝检测系统(django),附可视化界面,源码
python·cnn·django
java1234_小锋2 小时前
PyTorch2 Python深度学习 - 自动微分(Autograd)与梯度优化
开发语言·python·深度学习·pytorch2
java1234_小锋2 小时前
PyTorch2 Python深度学习 - 简介以及入门
python·深度学习·pytorch2
tao3556674 小时前
【Python刷力扣hot100】42. Trapping Rain Water
开发语言·python·leetcode
一只安4 小时前
从零开发AI(不依赖任何模型)
人工智能·python
2501_938782094 小时前
实战 Python NLP:处理 PDF 文档批量提取文本并进行主题建模
python·自然语言处理·pdf
成长痕迹5 小时前
【Python与Matlab数据分析对比】
python·matlab·数据分析
11年老程序猿在线搬砖5 小时前
如何搭建自己的量化交易平台
大数据·人工智能·python·自动交易·量化交易系统
错把套路当深情5 小时前
Kotlin保留小数位的三种方法
开发语言·python·kotlin