- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在两台不同的机器上安装了 Python3.6,发行版 Anaconda。我不能发誓我使用了相同的安装程序文件,尽管我认为我使用过。当我尝试检查 Python、Anaconda 和 numpy 版本时,我看到了同样的情况:
我得到的数值差异很小。经过一些调试后,我成功地将问题减少到对 numpy.exp 的调用。只需运行代码
import numpy as np
x = -0.1559828702879514361612223
y = np.exp(x)
print("The exponential of %0.25f is %0.25f" % (x, y))
我明白了
The exponential of -0.1559828702879514361612223 is 0.8555738459791129013609634
在第一台(“服务器”)机器上和
The exponential of -0.1559828702879514361612223 is 0.8555738459791127903386609
在第二台(“本地”)机器上。
我知道 float 没有 25 位小数精度,但这些差异在我的代码中传播并发生在小数点后第 12 位附近。
不同行为的原因可能是什么?
最佳答案
这与 NumPy 无关,而是与系统相关的浮点运算结果有关。在没有 NumPy 的情况下,您可以通过使用 math.exp
来获得相同的结果。一个更简单的例子是
math.exp(2**(-53)) - 1
它在我的一台计算机上恰好返回 0
而在另一台计算机上恰好返回 2.22e-16
。正如 math.expm1(2**(-53)) = 1.11e-16
的计算所示,这两个都是同样错误的(顺便说一句,这就是为什么函数 expm1
存在)。
在某种程度上,CPU 依赖性对您有好处,清楚地表明两个系统之间存在差异的那些数字毫无值(value)。要关注的是安排计算以减少 loss of significance .
关于python - numpy.exponential 行为略有不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44409782/
假设您要计算 5^65537而不是相乘 5 65537次,建议做((5^2)^16)*5 .这导致 16 次平方和 1 次乘法。 但我的问题是你不是通过对非常大的数字进行平方来补偿平方次数吗?当您进入
寻找一种使用 Esper (EPL) 语句计算 5 个 EMA5 和 EMA20 窗口内的指数移动平均线的方法。 我收到了价格事件流(时间戳、交易品种和价格),我在 5 的滑动窗口上编写了一个简单移动
我有一组值遵循 exponential distribution .现在,我想计算速率参数 alpha。谁能帮我计算一下(我正在使用 C++ 编写代码)? 最佳答案 如果您知道这些值来自指数分布,那么
我在两台不同的机器上安装了 Python3.6,发行版 Anaconda。我不能发誓我使用了相同的安装程序文件,尽管我认为我使用过。当我尝试检查 Python、Anaconda 和 numpy 版本时
我的互斥量实现只是在 CAS 失败时重试(伪代码): while(!compare_and_swap(&mutex, 0, 1)); 但它浪费了太多的 CPU 周期。 我了解到“指数退避”可以提高整体
背景信息 我正在设置一个函数,它根据开始日期和结束日期创建一个日期数组。 该函数将接收开始和结束日期,这些日期首先被格式化为 year-month-dayT12:00:00:00 格式,然后使用 .g
因此,我在这里编写了一个脚本,将学生添加到类(class)中(Google Classroom API)。 students = getStudents('Year10', '10A') # VAR
一个字符串一般有多少个子串? Why does string x [1:n] have O(n^2) subtrings according to the lecture 21 Dynamic Pro
当我减去两个值时,我得到 awk 结果,错误是我得到指数值 2.7755575615629E-17 而不是 0。我缺少应用的任何内容,请提出建议。仅在某些情况下才会发生这种情况,例如 0.66、0.6
我可能遗漏了一些明显的东西,但是如何计算 SAS 中的“幂”? 例如 X 的平方,还是 Y 的立方? 我需要的是变量1 ^ 变量2,但找不到语法...(我使用的是SAS 9.1.3) 最佳答案 明白了
当我减去两个值时,我得到了 awk 结果,错误是我得到的指数值是 2.7755575615629E-17 而不是 0。任何我遗漏的申请,请提出建议。这些情况仅在某些情况下发生,例如 0.66、0.67
我使用 Numpy 的 numpy.random.exponential 函数已有一段时间了。我现在看到 Python 的 random 模块有很多我不知道的功能。它有什么东西可以替代 numpy.r
我正在从事一个 Spring 项目,并且正在尝试为 RabbitMQ 队列实现带有死信的指数退避。 在此过程中,我创建了一个死信队列和一个死信交换 (Fanout),并将原始队列的 x-dead-le
我经常使用以下模式来创建对象 null/undefined省略属性: const whatever = { something: true, ...(a ? { a } : null),
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 5 年前。 Improve t
我正在阅读 GCM:https://developers.google.com/cloud-messaging/server 其中一项要求是服务器需要能够: 处理请求并使用指数退避重新发送它们。 我的
我们正在使用 Beanstalk 上的工作层来发送 webhook。我们需要使用指数退避,以防在联系第三方时出现任何错误。但是,我不清楚这将如何工作。 如果作业失败并且我调用了 ChangeMes
我需要标记我的 y 轴,以便它首先显示单词“Power”,然后是方括号中的表达式:[micro Volt squared]。 我可以生成我想要的整个标签的单个部分,但是当我想组合它们时遇到了问题: x
如何使用范围(0-99)内的不同分布在 Java 中生成随机数。 我知道标准的 Java.util.Random getNextInt() 使用 Uniform 和 PRNG。我将如何使用 nextG
我知道当 RPC 调用失败时,指数退避是一件好事。到目前为止,在我的 GAE/P 应用程序中,我已经通过使用任务队列实现了指数退避: deferred.defer(function_that_make
我是一名优秀的程序员,十分优秀!