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

news/2025/3/20 4:16:45/

在本文中,我们将介绍Numpy中的累加和累乘运算。累加/累乘是指在一个数组中按照一定的规则对元素进行相加或相乘的操作,通常返回一个新的数组。

累加运算

在Numpy中,我们可以使用cumsum函数对数组进行累加运算。cumsum函数将数组每个元素顺序相加,并返回一个新的数组:

import numpy as nparr = np.array([1, 2, 3, 4, 5])
print(np.cumsum(arr))  # [ 1  3  6 10 15]

上述例子中,我们定义了一个数组arr,然后使用cumsum函数对其进行累加运算,并将结果输出到控制台。

另外,我们还可以对多维数组进行累加运算。在这种情况下,cumsum函数将按照行major的顺序逐个计算累加值,相当于先对行进行累加,然后对每个行的累加结果再进行累加:

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函数将数组每个元素顺序相乘,并返回一个新的数组:

arr = np.array([1, 2, 3, 4, 5])
print(np.cumprod(arr))  # [  1   2   6  24 120]

上述例子中,我们定义了一个数组arr,然后使用cumprod函数对其进行累乘运算,并将结果输出到控制台。

与累加运算类似,我们还可以对多维数组进行累乘运算。在这种情况下,cumprod函数将按照行major的顺序逐个计算累乘值,相当于先对行进行累乘,然后对每个行的累乘结果再进行累乘:

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参数指定要进行累加/累乘的轴:

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

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)
[[ 1  2  3][ 5  7  9][12 15 18]]
`
[[ 1  3  6][ 4  9 15][ 7 15 24]]
``

http://www.ppmy.cn/news/1261622.html

相关文章

2023年【起重机械指挥】考试报名及起重机械指挥考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2023年起重机械指挥考试报名为正在备考起重机械指挥操作证的学员准备的理论考试专题,每个月更新的起重机械指挥考试试题祝您顺利通过起重机械指挥考试。 1、【多选题】在起重或搬运各种危险物品时&#xf…

6-4 是否二叉搜索树 分数 20

bool IsBST(BinTree T) {//空树 or 只有一个结点if (T NULL || (T->Left NULL) && (T->Right NULL))return true;BinTree cur NULL;cur T->Left;if (cur ! NULL){while (cur->Right)cur cur->Right;if (cur->Data > T->Data)return fals…

Python----多态

1、什么是多态 多态指的是一类事物有多种形态。 定义:多态是一种使用对象的方式,子类重写父类方法,调用不同子类对象的相同父类方法,可以产生不同的执行结果。 ① 多态依赖继承 ② 子类方法必须要重写父类方法 首先定义一个父类…

vue2+datav可视化数据大屏(2)

接上一节所说 我们已经讲骨架搭好 这节我们讲述的如何在vue2中使用mock数据和封装axios 1,项目中使用moke 📓什么是mock?,mock就是假数据,除了数据是假的,其他内容都和正常工作中后端开发的接口都是一致的…

Raspberry Pi 2, 2 of n - Pi 作为 IoT 消息代理

目录 介绍 环境 先决条件 - 设置静态 IP 地址 安装 Mosquitto 启动/停止 Mosquitto 配置先决条件 - 安装 mqtt_spy 配置 Mosquitto 配置 Mosquitto - 无安全性 测试 Mosquitto 配置 - 无安全性 配置 Mosquitto - 使用密码身份验证 Mosquitto 测试 - 带密码验证 概括 介绍 在本文…

2021年第十届数学建模国际赛小美赛B题疾病传播的风险解题全过程文档及程序

2021年第十届数学建模国际赛小美赛 B题 疾病传播的风险 原题再现: 空气传播疾病可以通过咳嗽或打喷嚏、喷洒液体或灰尘传播。另一方面,一些常见的传染病只能通过飞沫传播。请建立一个模型,以评估密闭空间内空气传播和液滴传播疾病的可能性。…

人工智能服务器高性能计算需求

人工智能(AI)服务器是一种专门为了运行人工智能应用和提供大数据处理能力而设计的高性能计算机。它既可以支持本地应用程序和网页,也可以为云和本地服务器提供复杂的AI模型和服务。 AI服务器的主要特点是出色的图形处理能力和高性能计算能力。与普通的服务器相比&a…

力扣102. 二叉树的层序遍历

广度优先搜索 思路&#xff1a; 广度优先搜索对应的数据结构是队列&#xff0c;处理每一层时把下一层节点 push 到队列中&#xff1b;使用 vector<vector> 数据结构存放结果&#xff1b; /*** Definition for a binary tree node.* struct TreeNode {* int val;* …