我意识到np.power(a, b)
慢于np.exp(b * np.log(a))
:np.power做了哪些额外的工作?
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上找到,我在那里找到了几个'power'函数,不能确定哪个是哪个(我没有花时间浏览它),但你可以尝试在那里,只需用引号“def power”作为开始搜索 –
@OferSadan你能告诉我更多一点吗,你在哪里找到这些'power'函数,我自己找不到它们(轮流放NumPy是真的很大......) –
在[github页面]顶部(https://github.com/numpy/numpy)有一个搜索字段。键入''def power“'发现3个命中。 – unutbu