Python笔记:在NumPy中,对ndarray进行算数运算和广播

NumPy与ndarray简介 一、NumPy简介 NumPy的全名为Numeric Python,是一个开源的Python科学计算库,它包括: 一个强大的N维数组对象ndrray;比较成熟的(广播)函数库;用于整合C/C++和Fortran代码的工具包;实用的线性代数、傅里叶变换和随机数生成函数 NumPy的优点: 对于同样的数值计算任务,使用NumPy要比直接编写Python代码便捷得多;NumPy中 阅读详情

对秩为1的两个ndarray进行加减乘除

import numpy as np

# 创建2个秩为1的ndarray
x = np.array([1,2,3,4])
y = np.array([5.1,6.1,7.1,8.1])

# 打印x
print('x = ', x)

# 打印y
print('y = ', y)

# 通过两种不同的方式,对x和y进行加减乘除
print('x + y = ', x + y)
print('add(x,y) = ', np.add(x,y))
print()
print('x - y = ', x - y)
print('subtract(x,y) = ', np.subtract(x,y))
print()
print('x * y = ', x * y)
print('multiply(x,y) = ', np.multiply(x,y))
print()
print('x / y = ', x / y)
print('divide(x,y) = ', np.divide(x,y))

输出:

x =  [1 2 3 4]
y =  [5.1 6.1 7.1 8.1]
x + y =  [ 6.1  8.1 10.1 12.1]
add(x,y) =  [ 6.1  8.1 10.1 12.1]

x - y =  [-4.1 -4.1 -4.1 -4.1]
subtract(x,y) =  [-4.1 -4.1 -4.1 -4.1]

x * y =  [ 5.1 12.2 21.3 32.4]
multiply(x,y) =  [ 5.1 12.2 21.3 32.4]

x / y =  [0.19607843 0.32786885 0.42253521 0.49382716]
divide(x,y) =  [0.19607843 0.32786885 0.42253521 0.49382716]

对秩为1的两个ndarray进行加减乘除

前提条件: ndarray 的形状必须一样或者可广播

import numpy as np

# 创建2个秩为2的相同形状的ndarray
X = np.array([1,2,3,4]).reshape(2,2)
Y = np.array([5.5,6.5,7.5,8.5]).reshape(2,2)

# 打印 X
print('X = \n', X)

# 打印 Y
print('Y = \n', Y)

print()

# 进行加减乘除并输出
print('X + Y = \n', X + Y)
print('add(X,Y) = \n', np.add(X,Y))
print()
print('X - Y = \n', X - Y)
print('subtract(X,Y) = \n', np.subtract(X,Y))
print()
print('X * Y = \n', X * Y)
print('multiply(X,Y) = \n', np.multiply(X,Y))
print()
print('X / Y = \n', X / Y)
print('divide(X,Y) = \n', np.divide(X,Y))

输出:

X = 
 [[1 2]
 [3 4]]
Y = 
 [[5.5 6.5]
 [7.5 8.5]]

X + Y = 
 [[ 6.5  8.5]
 [10.5 12.5]]
add(X,Y) = 
 [[ 6.5  8.5]
 [10.5 12.5]]

X - Y = 
 [[-4.5 -4.5]
 [-4.5 -4.5]]
subtract(X,Y) = 
 [[-4.5 -4.5]
 [-4.5 -4.5]]

X * Y = 
 [[ 5.5 13. ]
 [22.5 34. ]]
multiply(X,Y) = 
 [[ 5.5 13. ]
 [22.5 34. ]]

X / Y = 
 [[0.18181818 0.30769231]
 [0.4        0.47058824]]
divide(X,Y) = 
 [[0.18181818 0.30769231]
 [0.4        0.47058824]]

使用数学函数操作ndarray示例:

import numpy as np

# 创建秩为1的ndarray
x = np.array([1,2,3,4])

# 打印x
print('x = ', x)
print()

# 以e为底的指数
print('EXP(x) =', np.exp(x))
print()
# 计算平方根
print('SQRT(x) =',np.sqrt(x))
print()
# 计算 平方
print('POW(x,2) =',np.power(x,2))

使用统计学函数操作ndarray示例:

import numpy as np

# 创建一个秩为2的ndarray
X = np.array([[1,2], [3,4]])

# 打印X
print()
print('X = \n', X)
print()

# 使用mean计算X中所有元素中的平均数
print('计算在X中所有元素的平均数:', X.mean())

# 使用mean,外加axis参数计算X中列或行的平均数
print('X的所有列中所有元素的平均值:', X.mean(axis=0))
print('X中所有行中所有元素的平均值:', X.mean(axis=1))
print()
# 使用mean,外加axis参数计算X中列或行的总数
print('计算X中所有元素的总和', X.sum())
print('计算X中所有列中元素的总和:', X.sum(axis=0))
print('计算X中所有行中元素的总和:', X.sum(axis=1))
print()
# 标准差
print('计算X中所有元素的标准差:', X.std())
print('计算X中所有列中元素的标准差:', X.std(axis=0))
print('计算X中所有行中元素的标准差:', X.std(axis=1))
print()
print('计算X中所有元素的中位数:', np.median(X))
print('计算X中所有列上元素的中位数:', np.median(X,axis=0))
print('计算X中所有行上元素的中位数:', np.median(X,axis=1))
print()
print('计算X中所有元素的最大值:', X.max())
print('计算X中所有列上元素的最大值:', X.max(axis=0))
print('计算X中所有行上元素的最大值:', X.max(axis=1))
print()
print('计算X中所有元素的最小值:', X.min())
print('计算X中所有列上元素的最小值', X.min(axis=0))
print('计算X中所有行上元素的最小值:', X.min(axis=1))

输出:

X = 
 [[1 2]
 [3 4]]

计算在X中所有元素的平均数: 2.5
X的所有列中所有元素的平均值: [2. 3.]
X中所有行中所有元素的平均值: [1.5 3.5]

计算X中所有元素的总和 10
计算X中所有列中元素的总和: [4 6]
计算X中所有行中元素的总和: [3 7]

计算X中所有元素的标准差: 1.118033988749895
计算X中所有列中元素的标准差: [1. 1.]
计算X中所有行中元素的标准差: [0.5 0.5]

计算X中所有元素的中位数: 2.5
计算X中所有列上元素的中位数: [2. 3.]
计算X中所有行上元素的中位数: [1.5 3.5]

计算X中所有元素的最大值: 4
计算X中所有列上元素的最大值: [3 4]
计算X中所有行上元素的最大值: [2 4]

计算X中所有元素的最小值: 1
计算X中所有列上元素的最小值 [1 2]
计算X中所有行上元素的最小值: [1 3]

NumPy 使 ndarray 中的所有元素与单个数字相加,而不使用复杂的循环

import numpy as np

# 创建一个秩为2的ndarray
X = np.array([[1,2], [3,4]])

# 打印X
print('X = \n', X)
print()

# 整体ndarray 与 单个数进行加减运算
print('3 * X = \n', 3 * X)
print()
print('3 + X = \n', 3 + X)
print()
print('X - 3 = \n', X - 3)
print()
print('X / 3 = \n', X / 3)

输出:

X = 
 [[1 2]
 [3 4]]

3 * X = 
 [[ 3  6]
 [ 9 12]]

3 + X = 
 [[4 5]
 [6 7]]

X - 3 = 
 [[-2 -1]
 [ 0  1]]

X / 3 = 
 [[0.33333333 0.66666667]
 [1.         1.33333333]]

在上述运算中,NumPy 在后台对 ndarray 广播 3,使它们具有相同的形状。这样我们仅使用一行代码,就可以使 X 的每个元素加 3。

Numpy 可以对两个形状不同的 ndarray 执行相同的操作

import numpy as np

# 创建一个秩为1的ndarray
x = np.array([1,2,3])

# 创建一个秩为2的ndarray
Y = np.array([[1,2,3],[4,5,6],[7,8,9]])

# 创建一个秩为1的ndarray,并转换成秩为2的ndarray
Z = np.array([1,2,3]).reshape(3,1)

# 输出X
print('x = ', x)
print()

# 输出Y
print()
print('Y = \n', Y)
print()

# 输出Z
print()
print('Z = \n', Z)
print()

print('x + Y = \n', x + Y)
print()
print('Z + Y = \n',Z + Y)

输出:

x =  [1 2 3]


Y = 
 [[1 2 3]
 [4 5 6]
 [7 8 9]]


Z = 
 [[1]
 [2]
 [3]]

x + Y = 
 [[ 2  4  6]
 [ 5  7  9]
 [ 8 10 12]]

Z + Y = 
 [[ 2  3  4]
 [ 6  7  8]
 [10 11 12]]

关于广播的API:

  • https://docs.scipy.org/doc/numpy-1.13.0/user/basics.broadcasting.html
机器学习之Numpy:Numpy介绍、N维数组-ndarray、基本操作、ndarray运算、数学矩阵、数组间运算(超长篇,建议收藏慢慢看) 文章目录Numpy学习目标4.1 Numpy优势学习目标1 Numpy介绍2 ndarray介绍3 ndarray与Python原生list运算效率对比4 ndarray的优势4.1 内存块风格4.2 ndarray支持并行化运算(向量化运算)4.3 效率远高于纯Python代码5 小结4.2 N维数组-ndarray学习目标1 ndarray的属性2 ndarray的形状3 ndarray的类型... 阅读详情

相关推荐

【Python】Numpy基础:数组和矢量运算

Numpy(Numerical Python)是高性能科学计算和数据分析的基础包,它是几乎所有数据分析高级工具的构建基础。

2393

numpy数组的相关操作

目录numpy数组的高级操作一、堆叠操作stackhstackvstack测试题目二、比较、掩码和布尔逻辑比较布尔数组作掩码布尔逻辑三、花式索引与布尔索引花式索引布尔索引四、广播机制广播是什么广播的原则五、线性代数常用函数测试题目 numpy数组的高级操作 本文为机器学习课程中的笔记。 一、堆叠操作 stack stack的意思是堆叠的意思,所谓的堆叠就是将两个ndarray对象堆叠在一起组合成一个新的ndarray对象。根据堆叠的方向不同分为hstack以及vstack两种。 hstack hstack为

weixin_45588852的博客 3012

Python之numpy详细教程

Numpy学习笔记Numpy介绍ndarray介绍ndarray与Python原生list运算效率对比ndarray的优势内存块风格ndarray支持并行化运算(向量化运算)效率远高于纯Python代码Numpy安装N维数组-ndarrayarray 创建ndarray的属性ndarray的形状ndarray的类型总结基本操作生成数组的方法生成0和1的数组np.empy()从现有数组生成关于array和asarray的不同生成固定范围的数组np.linspace (start, stop, num, end

全网粉丝30W+,优快云、稀土掘金人工智能领域签约作者,人工智能、大模型、Python 爬虫,商务合作,请私信沟通。 3万+

python语法之array类型的加减乘

python语法之array类型的加减乘,不定期更新或补充之前的笔记。

Ariya1234的博客 5698

修勾逃生巨人危机v10.9.9修改版:免广告无限内购与GM工具详解

游戏修改技术是通过对原版游戏程序进行代码层面的调整,实现特定功能的增强或限制解除。其核心原理涉及内存修改、资源替换和API拦截等技术手段,能够有效提升用户体验和测试效率。在移动游戏领域,免广告和无限内购是常见的技术实现方向,通过屏蔽广告SDK调用和修改内购验证逻辑,为用户提供更流畅的游戏体验。这类技术特别适合游戏开发者进行功能测试,以及玩家希望完整体验游戏内容而不受商业模式限制的场景。以修勾逃生巨人危机v10.9.9版本为例,该修改版集成了GM工具开启功能,通过特定操作路径即可激活调试面板,实现了广告去除和

weixin_30855099的博客 2627

Multisim实战:从8选1到32选1数据选择器的完整搭建指南(附常见问题解决)

本文提供了一份详尽的Multisim实战指南,手把手教你从基础的8选1数据选择器开始,逐步级联搭建16选1乃至32选1数据选择器。文章深入剖析了级联的核心逻辑、片选方案以及使用译码器的专业方法,并附带了电源连接、输出冲突、信号毛刺等常见问题的诊断与解决技巧,帮助电子工程学生和爱好者扎实掌握数字电路的系统设计与仿真调试。

dd012的博客 732

numpy数学运算—四则运算—数组批量加减乘除

python——numpy的加减运算

业精于勤,荒于嬉;行成于思,毁于随 1433

gd32 spi 发送&中断接收例程

【代码】gd32 spi 发送&中断接收例程。

weixin_43026921的博客 1653

python np array 减去一个数_python-取消numpy数组操作(包括标量)

我正在使用NumPy 1.7.1版.现在我遇到了一个我不明白的奇怪取消:>>> import numpy as np>>> a = np.array([ 883, 931, 874], dtype=np.float32)数学上0.1-a应该是0.1.现在让我们计算一下这个表达式以及绝对和相对误差:>>> a+0.1-aarray([ 0.0...

weixin_31546795的博客 1789

T型三电平关管顺序要求

摘要: T型三电平拓扑中,IGBT关断必须遵循“外管先关、内管后关”的时序,否则易导致器件损坏。正常导通时,外管与内管共同分担电压;正确关断时,外管先关使电流经内管续流至中点,避免电压过冲;若内管先关,电流路径被强制切断,杂散电感引发高压尖峰击穿器件。这一时序本质是为电流提供低应力续流路径,需通过硬件或软件严格保障。

yun0804的博客 2385

AIDD机器学习深度学习药物发现与设计教程总结

AIDD(AI Drug Discovery & Design):是近年来非常火热的技术应用,且已经介入到新药设计到研发的大部分环节当中,为新药发现与开发带来了极大的助力。倾向于机器对数据库信息的自我学习,可以对数据进行提取和学习,一定程度上避免了化合物设计过程中的试错路径,同时还会带来很多全新的结构,为药物发现打破常规的结构壁垒。覆盖了机器学习和深度学习,能与新药研发相结合并实质性的应用到靶点预测、高通量筛选、药物设计、药物的ADMET性质预测等;且算力方面,由早期应用于药物发现领域的决策树、随机

wutianlin0723的博客 6820

numpy:矩阵或者数组相减

# -*- coding: utf-8 -*- """ numpy:矩阵或者数组相减 """ import numpy as np if __name__ == '__main__': feature = np.array([2,3,5]) center = np.array([1,2,3]) print("原始数据维度:") print(featur...

小花生的博客 2万+

STM32解析航模遥控器的PPM信号

使用STM32对航模遥控器的PPM信号进行解析

qq_44343584的博客 9734

[转载] Python笔记:在NumPy中,对ndarray进行算数运算和广播

参考链接: Python中的numpy.divide 对秩为1的两个ndarray进行加减乘除 import numpy as np # 创建2个秩为1的ndarray x = np.array([1,2,3,4]) y = np.array([5.1,6.1,7.1,8.1]) # 打印x print('x = ', x) # 打印y print('y = ', y) # 通过两种不同的方式,对x和y进行加减乘除 print('x + y = ', x + ...

u013946150的博客 368

偏最小二乘回归分析原理详解和案例分析实例

偏最小二乘回归分析原理详解背景偏最小二乘回归分析 Partial least squares regression analysis基本思想建模步骤步骤一:分别提取两变量组的第一对成分,并使之相关性达最大步骤二:建立 y1,⋯ ,yp\boldsymbol{y}_{1}, \cdots, \boldsymbol{y}_{p}y1​,⋯,yp​ 对 u1\boldsymbol{u}_{1}u1​ 的回归及 x1,⋯ ,xm\boldsymbol{x}_{1}, \cdots, \boldsymbol{x}_{

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 9977

Zookeeper+Hadoop+Spark+Flink+Kafka+Hbase+Hive 完全分布式高可用集群搭建(保姆级超详细含图文) 附安装包网盘下载

Hadoop+Spark+Flink+Zookeeper+Kafka+Hbase+Hive完全分布式高可用集群搭建 Hadoop高可用集群搭建 Spark高可用集群搭建 Flink高可用集群搭建 Zookeeper高可用集群搭建 Kafka高可用集群搭建 Hbase高可用集群搭建 Hive高可用集群搭建 mysql搭建 jdk部署 大数据集群环境搭建

Mr.L-OAM的博客 2万+

python里numpy实现加减乘除与普通加减乘除有什么不同_Python笔记:在NumPy中,对ndarray进行算数运算和广播...

对秩为1的两个ndarray进行加减乘除import numpy as np# 创建2个秩为1的ndarrayx = np.array([1,2,3,4])y = np.array([5.1,6.1,7.1,8.1])# 打印xprint('x = ', x)# 打印yprint('y = ', y)# 通过两种不同的方式,对x和y进行加减乘除print('x + y = ', x + y)pri...

weixin_36048031的博客 756

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

numpy库ndarray数组的运算及操作

前提是两个数组的形状相同。

2503_92739857的博客 1255

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

总结numpy中的ndarray,非常齐全

公众号后台回复“图书“,了解更多号主新书内容来源:Python碎片作者:binn.wongnumpy(Numerical Python)是一个开源的Python数据科学计算库,支持对N维数...

数据森麟 9827

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

MXNet NDArray Operations 实战指南:元素运算、原地操作、切片与广播

本文是 MXNet 深度学习框架中 `NDArray` 多维数组操作的核心教程,围绕 [docs/python_docs/python/tutorials/packages/legacy/ndarray/02-ndarray-operations.md](https://link.gitcode.com/i/a13656bfbeda5b49c5ddbb8f2860a823) 展开。你将系统掌握 N

gitblog_00993的博客 971

【深度学习-Day 6】掌握 NumPy:ndarray 创建、索引、运算与性能优化指南

欢迎来到深度学习之旅的第六天!在前几天的学习中,我们已经了解了深度学习的基本概念,并掌握了 Python 语言的基础(或者复习了它)。从今天开始,我们将接触到数据科学领域至关重要的工具库。而 NumPy (Numerical Python) 无疑是其中最基础、最核心的一个。为什么 NumPy 如此重要?想象一下,深度学习本质上就是对大量的数字(如图像像素、词向量、模型参数)进行复杂的数学运算。NumPy 提供了一个强大的 N 维数组对象ndarray,以及一系列用于高效处理这些数组的函数。

吴师兄大模型的博客 1820

MXNet NDArray 运算完全指南:元素级操作、原地计算、切片与广播

本文是 MXNet NDArray 系列教程的第二篇,系统讲解 `mxnet.nd` 中数组运算的核心能力:从加减乘除、指数与矩阵乘法等基础数学运算,到如何利用原地(in-place)操作避免多余内存分配,再到灵活的切片索引与广播(broadcasting)机制,最后介绍与 NumPy 之间的双向转换。读完本文,你将掌握编写高效、可读的 MXNet 数据预处理与张量计算代码的完整技能,并能理解这些

gitblog_00817的博客 936

python 对ndarray全体除以一个数_python学习日记之Numpy基础

第一次写文章,没什么经验。。。。一、数据的维度 数据维度是数据的组织形式 1、一维数据:列表和集合类型 例如:[3.14,3.141,3.1415] (列表类型数据是有序的) {3.14,3.141,3.1415} (集合类型数据是无序的) 2、二维数据:列表类型 例如:[ [3.14,3.141,3.1415],[3.13,3.1...

weixin_39739170的博客 5963

Numpy笔记:安装Numpy+ndarray基本属性+常用方法+索引和切片+广播+轴+范数

学习Numpy整理的笔记,涉及知识点有numpy的安装、ndarray基本属性、常用方法、索引和切片、广播、轴、范数等

一只努力学习的小碗~ 1577

「numpy」numpy ndarray 广播机制、数组间的运算

【代码】「numpy」numpy ndarray 广播机制、数组间的运算。

qq_44906900的博客 390

numpy中ndarray使用

numpy的基础操作

qq_42937462的博客 1193
上一篇: Python笔记:在NumPy中,对秩为 1 和 2 的 ndarray 进行排序
下一篇: Python笔记:Python中的Pandas工具简介
Wang's Blog
博客等级 码龄12年 7438粉丝 2422原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值