当前位置: 首页 > news >正文

Numpy-算数函数与数学函数

⛳算数函数

  • 如果参与运算的两个对象都是ndarray,并且形状相同,那么会对位彼此之间进 第 30 页 行(+ - * /)运算。NumPy 算术函数包含简单的加减乘除: add(),subtract(),multiply() 和divide()。

🧩算术运算的广播机制

```NumPy数组的算术运算使用了广播(broadcasting)机制,它允许不同形状的数组进行元素级别的运算,而无需显式地扩展数组的形状。这个功能使得在处理不同维度的数组时更加方便和灵活。广播的规则如下:1. 如果两个数组的维度不同,那么将维度较小的数组在其前面补1,使得两个数组的维度一致。
2. 如果两个数组的维度在任何一个维度上都不匹配,且维度不同的数组的长度不为1,则报错。
3. 如果两个数组的维度在任何一个维度上都不匹配,但其中一个数组的长度为1,那么可以通过广播机制进行计算。具体来说,当进行二元操作(如加法、减法、乘法等)时,NumPy会按照以下步骤进行广播:1. 如果两个数组的维度不同,将维度较小的数组在其前面补1,使得两个数组的维度一致。
2. 比较两个数组在每个维度上的形状(从最后一个维度开始比较),如果两个数组在某个维度上的形状相同或其中一个数组在该维度上的长度为1,则这两个数组在该维度上是兼容的。
3. 如果两个数组在所有维度上都是兼容的,那么它们是可以进行广播的,即可以在不增加数组维度的情况下进行元素级别的运算。
4. 如果两个数组在某个维度上的长度既不相同也不为1,则广播失败,报错。广播机制使得我们可以对不同形状的数组进行操作,而无需显式地扩展数组的形状,这在很多情况下非常方便。但在使用广播时,要注意数组形状的兼容性,以免出现错误的计算结果。

🧩举个栗子:

假设有两个数组A和B:

A = np.array([1, 2, 3])
B = np.array([4, 5, 6])

它们的形状分别为(3,),即一维数组。现在我们想对它们进行加法运算。

由于两个数组的维度相同,可以直接进行元素级别的加法运算,结果是一个新的数组:

C = A + B
print(C)

输出结果为:

[5 7 9]

这是因为在进行加法运算时,NumPy自动进行了广播。它将数组A和B都扩展为相同的形状(3,),然后进行元素级别的加法运算。

再举一个例子,假设有一个一维数组A和一个标量值s:

A = np.array([1, 2, 3])
s = 10

我们想对数组A的每个元素都加上标量值s。同样地,由于标量值可以看作形状为()的数组,它的形状与数组A的形状不匹配。但是根据广播规则,可以进行广播运算:

B = A + s
print(B)

输出结果为:

[11 12 13]

在这个例子中,标量值s被自动扩展为与数组A相同的形状(3,),然后进行元素级别的加法运算。

这些例子展示了NumPy数组的广播机制,它使得我们可以方便地对不同形状的数组进行元素级别的运算,而无需显式地扩展数组的形状。

⛳数学函数

  • NumPy 提供了标准的三角函数:sin()、cos()、tan()。π的表达为nunmpy.pi
  • numpy.around() 函数返回指定数字的四舍五入值。 numpy.around(a,decimals)
    • 参数说明:
    • a: 数组。
    • decimals: 舍入的小数位数。 默认值为 0。 如果为负,整数将四舍五入到小数点左侧 的位置。
    • numpy.floor() 返回数字的下舍整数。
    • numpy.ceil() 返回数字的上入整数。
http://www.lryc.cn/news/98667.html

相关文章:

  • Nginx在springboot中起到的作用
  • 12.(开发工具篇vscode+git)vscode 不能识别npm命令
  • 如何在MacBook上彻底删除mysql
  • web攻击面试|网络渗透面试(一)
  • VBA操作WORD(六)另存为不含宏的文档
  • 分享69个Java源码,总有一款适合您
  • 《cool! autodistill帮你标注数据训练yolov8模型》学习笔记
  • Rust vs Go:常用语法对比(十)
  • SliverPersistentHeader组件 实现Flutter吸顶效果
  • Nginx性能优化配置
  • 杭州多校2023“钉耙编程”中国大学生算法设计超级联赛(4)
  • 音视频入门之音频采集、编码、播放
  • 在 Linux 系统中,如何发起POST/GET请求
  • 文心一言大数据模型-文心千帆大模型平台
  • django学习笔记(1)
  • postgresql主从搭建
  • 将Parasoft和ChatGPT相结合会如何?
  • Go text/template详解:使用指南与最佳实践
  • Stable Diffusion在各种显卡上的加速方式测试,最高可以提速211.2%
  • Java读取外链图片忽略ssl验证转为base64
  • 系统架构设计师 10:软件架构的演化和维护
  • Windows 11 绕过 TPM 方法总结,通用免 TPM 镜像下载 (2023 年 7 月更新)
  • EXCEL,如何比较2个表里的数据差异(使用数据透视表)
  • 字节抖音小程序,使用 uniapp 调起内置支付
  • django模板继承和组件了解
  • 首屏优化,给以图片为背景的元素增加相似背景,优化用户体验,background-image 绘制规则
  • 【用户体验分析报告】 按需加载组件,导致组件渲染卡顿,影响交互体验?组件拆包预加载方案来了!
  • idea 关闭页面右侧预览框/预览条
  • CSS3 Flexbox
  • 东南大学轴承故障诊断(Python代码,CNN模型,适合复合故障诊断研究)