NumPy中的^{y = x - np.around(x)
。(重要的是y
的所有元素的绝对值最多为1/2)。查看NumPy文档^{
显然,我考虑过写x - np.around(x)
,但我担心x
的大值减法会产生浮点错误。例如:
import numpy as np
a = np.arange(1000) * 1e-9
x = a / 1e-9
y = x - np.around(x)
应该生成一个全零向量y
,但实际上会有一些错误(如果我将数组的大小从1000增加到10000,错误会变得更大)。你知道吗
我问这个问题的原因是为了弄清楚是否有一个NumPy函数可以直接调用C数学库remainder
(正如math.remainder
必须做的那样),从而最小化浮点错误。你知道吗
我认为这种情况目前并不存在。也就是说,automagic^{} 调用对我来说是正确的,例如:
这会很好地通过参数进行广播,给出:
这可能是你想要的。你知道吗
性能大约是使用本机实现时的10倍。给定10000个元素的阵列,我的笔记本电脑大约需要以下时间:
ieee_remainder
numpy.fmod
考虑到glibc's ^{} implementation 的复杂性,我很惊讶它的速度如此之快。你知道吗
相关问题 更多 >
编程相关推荐