我使用的是scipy版本0.19.0。我看到在scipy\stats_continuous distns下,函数_norm_ppf
包装{
作为比较, 我在ASA241中创建了一个著名的开源实现的反cdf的c扩展(“R8_NORMAL_01_cdf_inverse”)。您可以通过以下链接查看它的版本:http://people.sc.fsu.edu/~jburkardt/c_src/asa241/asa241.html
一些天真的基准测试显示,scipy的版本几乎慢了1000倍:
import timeit
from scipy.stats import norm
from QSCoreExtensions import r8_normal_01_cdf_inverse # compiled extension
def a():
norm.ppf(.3456)
def b():
r8_normal_01_cdf_inverse(.3456)
print(timeit.timeit('a()', number=10000, globals=globals()))
print(timeit.timeit('b()', number=10000, globals=globals()))
输出:
219758156838038
0.0021004953395136194
请注意,任何输入(不仅仅是.3456)都会产生类似的结果。此外,r8_normal_01_cdf_逆精度为10**16的1部分,实际上比scipy.stats.norm.ppf页
目前没有回答
相关问题 更多 >
编程相关推荐