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]]
``
相关推荐
无所事事的海绵宝宝33 分钟前
selenium元素定位校验以及遇到的元素操作问题记录
python·功能测试·selenium·测试工具
计算机学姐37 分钟前
基于Python爬虫大屏可视化的热门旅游景点数据分析系统
开发语言·vue.js·后端·爬虫·python·mysql·django
夏天里的肥宅水39 分钟前
Python_爬虫1_Requests库入门
开发语言·爬虫·python
阿星_40 分钟前
python selenium库的使用:通过兴趣点获取坐标
开发语言·python·selenium
夏天里的肥宅水41 分钟前
Python_爬虫2_爬虫引发的问题
开发语言·爬虫·python
阿万音玲羽7 小时前
李沐《动手学深度学习》kaggle树叶分类(ResNet18无预训练)python代码实现
人工智能·python·深度学习·机器学习·分类·cnn
赵孝正8 小时前
如何在jupyter notebook切换python环境
ide·python·jupyter
Z2116133479 小时前
学习日志011--模块,迭代器与生成器,正则表达式
python
CrazyCosin9 小时前
Clip结合Faiss+Flask简易版文搜图服务
python·flask·faiss
恒风521210 小时前
PyCharm 中的【控制台】和【终端】的区别
ide·python·pycharm