np.power 还做了哪些额外的工作?

2023-12-31

我意识到np.power(a, b)慢于np.exp(b * np.log(a)):

import numpy as np
a, b = np.random.random((2, 100000))
%timeit np.power(a, b) # best of 3: 4.16 ms per loop
%timeit np.exp(b * np.log(a)) # best of 3: 1.74 ms per loop

结果是相同的(有一些 1e-16 阶的数值误差)。

还做了哪些额外工作np.power?此外,我自己怎样才能找到这些问题的答案呢?


在引擎盖下 https://github.com/numpy/numpy/blob/3b7908d299fc3287486bbe453e2335c1fa50fc29/numpy/core/src/npymath/npy_math_internal.h.src两个表达式都调用各自的 C 函数pow or exp and log and 对 C++ 中的内容运行分析 https://gist.github.com/adler-j/a440d4539ad1bbaa7dc3e2727f93e8b1,没有任何 numpy 代码,给出:

pow      : 286 ms
exp(log) :  93 ms

这与 numpy 时序一致。因此,主要区别似乎是 C 函数pow慢于exp(log).

为什么?看来部分原因是表达式对于所有输入并不等效。例如,带有负数a和整数b, power工作同时exp(log) fails:

>>> np.power(-2, 2)
4
>>> np.exp(2 * np.log(-2))
nan

另一个例子是0 ** 0:

>>> np.power(0, 0)
1
>>> np.exp(0 * np.log(0))
nan

因此,exp(log)技巧仅适用于输入的子集,而power适用于所有(有效)输入。

除此之外,power保证给出完整的精度IEEE 754 标准 https://en.wikipedia.org/wiki/IEEE_754, while exp(log)可能会出现舍入误差。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

np.power 还做了哪些额外的工作? 的相关文章

  • 使用 MongoDB 作为我们的主数据库,我应该使用单独的图数据库来实现实体之间的关系吗?

    我们目前正在为一家专业公司内部实施类似 CRM 的解决方案 由于存储信息的性质以及信息的不同值和键 我们决定使用文档存储数据库 因为它完全适合目的 在本例中我们选择 MongoDB 作为此 CRM 解决方案的一部分 我们希望存储实体之间的关
  • 计算另一个字符串中多个字符串的出现次数

    在 Python 2 7 中 给定以下字符串 Spot是一只棕色的狗 斑点有棕色的头发 斑点的头发是棕色的 查找字符串中 Spot brown 和 hair 总数的最佳方法是什么 在示例中 它将返回 8 我正在寻找类似的东西string c
  • pandas DataFrame.join 的运行时间是多少(大“O”顺序)?

    这个问题更具概念性 理论性 与非常大的数据集的运行时间有关 所以我很抱歉没有一个最小的例子来展示 我有一堆来自两个不同传感器的数据帧 我需要最终将它们连接成两个very来自两个不同传感器的大数据帧 df snsr1 and df snsr2
  • 多输出堆叠回归器

    一次性问题 我正在尝试构建一个多输入堆叠回归器 添加到 sklearn 0 22 据我了解 我必须结合StackingRegressor and MultiOutputRegressor 经过多次尝试 这似乎是正确的顺序 import nu
  • 使用主题交换运行多个 Celery 任务

    我正在用 Celery 替换一些自制代码 但很难复制当前的行为 我期望的行为如下 创建新用户时 应向tasks与交换user created路由键 该消息应该触发两个 Celery 任务 即send user activate email
  • 打印数字时添加千位分隔符[重复]

    这个问题在这里已经有答案了 我真的不知道这个问题的 名称 所以它可能是一个不正确的标题 但问题很简单 如果我有一个数字 例如 number 23543 second 68471243 我想要它使print 像这样 23 54368 471
  • 矩形函数的数值傅里叶变换

    本文的目的是通过一个众所周知的分析傅里叶变换示例来正确理解 Python 或 Matlab 上的数值傅里叶变换 为此 我选择矩形函数 这里报告了它的解析表达式及其傅立叶变换https en wikipedia org wiki Rectan
  • 打印包含字符串和其他 2 个变量的变量

    var a 8 var b 3 var c hello my name is var a and var b bye print var c 当我运行程序时 var c 会像这样打印出来 hello my name is 8 and 3 b
  • Python 3:将字符串转换为变量[重复]

    这个问题在这里已经有答案了 我正在从 txt 文件读取文本 并且需要使用我读取的数据之一作为类实例的变量 class Sports def init self players 0 location name self players pla
  • python的shutil.move()在linux上是原子的吗?

    我想知道python的shutil move在linux上是否是原子的 如果源文件和目标文件位于两个不同的分区上 行为是否不同 或者与它们存在于同一分区上时的行为相同吗 我更关心的是如果源文件和目标文件位于同一分区上 shutil move
  • 当字段是数字时怎么说...在 mongodb 中匹配?

    所以我的结果中有一个名为 城市 的字段 结果已损坏 有时它是一个实际名称 有时它是一个数字 以下代码显示所有记录 db zips aggregate project city substr city 0 1 sort city 1 我需要修
  • Pandas 组合不同索引的数据帧

    我有两个数据框df 1 and df 2具有不同的索引和列 但是 有一些索引和列重叠 我创建了一个数据框df索引和列的并集 因此不存在重复的索引或列 我想填写数据框df通过以下方式 for x in df index for y in df
  • Django REST Framework - CurrentUserDefault 使用

    我正在尝试使用CurrentUserDefault一个序列化器的类 user serializers HiddenField default serializers CurrentUserDefault 文档说 为了使用它 请求 必须作为
  • 如何使用 Python 3 检查目录是否包含文件

    我到处寻找这个答案但找不到 我正在尝试编写一个脚本来搜索特定的子文件夹 然后检查它是否包含任何文件 如果包含 则写出该文件夹的路径 我已经弄清楚了子文件夹搜索部分 但检查文件却难倒了我 我发现了有关如何检查文件夹是否为空的多个建议 并且我尝
  • 每当使用 import cv2 时 OpenCV 都会出错

    我在终端上使用 pip3 install opencv contrib python 安装了 cv2 并且它工作了 但是每当我尝试导入 cv2 或运行导入了 cv2 的 vscode 文件时 在 python IDLE 上它都会说 Trac
  • 制作一份 Python 文档的 PDF 文件

    Python 官方网站提供 PDF 文档下载 但它们是按章节分隔的 我下载了源代码并构建了 PDF 文档 这些文档也是单独的 PDF 我怎么能够从源代码中的 Makefile 构建一个 PDF 文件 我认为这样阅读起来会更方便 如果连接单独
  • Firebase Firestore:获取文档的生成 ID (Python)

    我可以创建一个新文档 带有自动生成的 ID 并存储对其的引用 如下所示 my data key value doc ref db collection u campaigns add my data 我可以像这样访问数据本身 print d
  • 等待子进程使用 os.system

    我用了很多os system在 for 循环内调用创建后台进程 如何等待所有后台进程结束 os wait告诉我没有子进程 ps 我使用的是Solaris 这是我的代码 usr bin python import subprocess imp
  • 在virtualenv中下载sqlite3

    我正在尝试使用命令创建应用程序python3 manage py startapp webapp但我收到一条错误消息 django core exceptions ImproperlyConfigured 加载时出错 pysqlite2 或
  • 如何使用 PrimaryKeyRelatedField 更新多对多关系上的类别

    Django Rest 框架有一个主键相关字段 http www django rest framework org api guide relations primarykeyrelatedfield其中列出了我的 IDmany to m

随机推荐

  • AngularJS 发送 OPTIONS 请求而不是 POST

    我正在尝试将图片上传到我的 S3 存储桶 我正在使用 AngularJS v1 2 13 当我使用他们的文档中显示的简单案例时 使用以下命令提交表单 action标签 一切正常 但是 如果我想用 Angular 的方式来做ng clickA
  • 优化磁盘IO

    我有一段代码可以分析来自非常大 10 100GB 二进制文件的数据流 效果不错 是时候开始优化了 目前磁盘IO是最大的瓶颈 使用的文件有两种类型 第一种类型的文件由 16 位整数流组成 在 I O 后必须对其进行缩放 以转换为具有物理意义的
  • 当搜索过滤器值从 javascript 更改时,智能表不会更新[重复]

    这个问题在这里已经有答案了 我在用角度智能桌 https github com lorenzofox3 Smart Table 当我使用 st search 指令的搜索过滤器时 当我从 javascript 表更改其值时 不会得到更新 这是
  • MySQL 基于日期列按周分组?

    我有一个带有日期列的表 我想尝试进行分组 使用一周作为时间参考来计算每周发生的行数 我已经这样做了好几天了 使用 GROUP BY Date Date Column 但我不确定如何按周执行此操作 Thanks SELECT FROM GRO
  • Actor 内的异步 API 调用和异常

    我知道关于PipeTo https stackoverflow com a 25225274 1180426 but 有些东西 比如嵌套延续上的同步等待 似乎违背了异步和等待的方式 https github com petabridge a
  • 如何使用 protobuf-net 或其他序列化程序序列化第 3 方类型?

    I have List
  • 如何检查连接字符串是否有效?

    我正在编写一个应用程序 其中用户手动提供连接字符串 我想知道是否有任何方法可以验证连接字符串 我的意思是检查它是否正确以及数据库是否存在 你可以尝试连接一下吗 为了快速 离线 验证 也许可以使用DbConnectionStringBuild
  • 如何在 C 中便携式打印 int64_t 类型

    C99 标准具有字节大小的整数类型 如 int64 t 我正在使用 Windows 的 I64d当前格式 或未签名 I64u like include
  • Spark:广播对象时内存不足

    我尝试广播一个不太大的地图 作为文本文件保存到 HDFS 时约为 70 MB 但出现内存不足错误 我尝试将驱动程序内存增加到11G 执行程序内存增加到11G 但仍然出现相同的错误 memory fraction设置为0 3 缓存的数据也不多
  • 从 url 下载 zip 并使用 SBT 将其解压到资源中

    我想从 URL 下载 zip 文件 我的数据库 并将其解压到特定文件夹 例如资源 中 我想在我的项目构建 sbt 文件中执行此操作 这样做的适当方法是什么 我知道sbt IO已经解压并下载 我找不到使用下载的好示例 我发现的示例不起作用 有
  • 如何在数据库中存储 8000 亿个 GPS 标记 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • rstudent() 返回“mlm”的错误结果(装有多个 LHS 的线性模型)

    我知道对具有多个 LHS 的线性模型的支持是有限的 但是 当可以在 mlm 对象上运行函数时 我希望结果是可信的 使用时rstudent 产生奇怪的结果 这是一个错误还是有其他解释 在下面的例子中fittedA and fittedB是相同
  • F# 说计算表达式中未定义值

    我一直在使用 F 计算表达式开发 State Monad 并且我还尝试利用自定义操作 我遇到了一些没有意义的奇怪行为 当仅在上面两行声明该值时 编译器报告该值不存在 type State lt a s gt s gt a s module
  • 如何在没有数据上下文的情况下更新对象

    实体框架提供了极大的灵活性 可以在同一数据上下文中更新数据 Dim personA from p in datacontext Person where p PersonID 1 select p personA name txtName
  • 获取 React-Select 中突出显示选项的值

    我在用着反应选择 v2 https react select com home使用异步选择组件
  • GCC 不喜欢带空格的 C++ 风格转换 [重复]

    这个问题在这里已经有答案了 我正在将一些 C 代码移植到 GCC 显然 当涉及空间时 它对 C 样式转换不满意 如unsigned int 1 long long ShortVar 等等 它给出了error expected primary
  • PDF 规范中“base 14”字体的字体规格

    我一直在编写软件来解析 PDF 中的内容 特别是分成区域的文本 为此 我需要字体度量 例如字形位移 字体宽度上升 下降和字形边界框等 简而言之 PDF 中字体定义的 FontDescriptor 字典中应提供的度量类型 不幸的是 对于基本字
  • 在 Python 中解析 XML 的最快方法

    我正在尝试寻找最快的方法来解析智能手机中的传感器数据以用于实时应用程序 格式如下
  • UITableView 页脚,停止浮动在内容上

    我想让我的 UITableView 页脚停止漂浮在我的内容上 就像默认活动一样 我希望我的页脚是 好吧 页脚 始终是在表格视图末尾显示的最后一个视图 实际上 标题也是如此 有没有什么简单的方法可以在滚动时禁止它浮动在表格视图的顶部 谢谢大家
  • np.power 还做了哪些额外的工作?

    我意识到np power a b 慢于np exp b np log a import numpy as np a b np random random 2 100000 timeit np power a b best of 3 4 16