numpy如何计算指数?

时间:2018-11-21 19:28:04

标签: python numpy math

在阅读this question之后,我想知道调用np.exp会在幕后发生什么:用于导出返回数组中的值的数学/数字例程是什么?例如,我认为要计算np.sqrt(x),可以使用牛顿方法找到y到y ** 2-x = 0的解。

(np.exp的文档字符串未说明如何完成此操作)

1 个答案:

答案 0 :(得分:4)

(稍作更新以纠正原始链接行集,并为原始链接的行添加一个单独的行:) numpy使用the C library implementation of exp绑定到a self-defined proxy if the appropriate-precision C99 variant is not available。其性能将取决于库的性能。

我不是数值算法方面的专家,但是这两个StackOverflow问题似乎有很好的答案:Efficient implementation of natural logarithm (ln) and exponentiationFastest Implementation of Exponential Function Using SSE。注意,实际上没有使用the accepted answer to the first question(建议一个简单的泰勒展开式)。相反,我们找到this answer suggests作为polynomial expansions for particular ranges, and add range reduction and subsequent correction, in real implementations

另请参见Python source code for math exponent function?this paper by Sushant Sachdeva and Nisheeth K. Vishnoi。有关更多信息,请参见Google Search