Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在PyPy上矢量化高斯CDF(或erf/erfc/等)的最快方法(即无SciPy)_Python_Numpy_Gaussian_Pypy_Cdf - Fatal编程技术网

Python 在PyPy上矢量化高斯CDF(或erf/erfc/等)的最快方法(即无SciPy)

Python 在PyPy上矢量化高斯CDF(或erf/erfc/等)的最快方法(即无SciPy),python,numpy,gaussian,pypy,cdf,Python,Numpy,Gaussian,Pypy,Cdf,我试图在PyPy上计算许多高斯函数的CDF,但使用math.erf进行计算很慢 我在PyPy上没有SciPy,所以我不能用它。然而,我有NumPy 除了编写自己的C扩展名之外,我在PyPy上执行此操作的最快方法是什么?如果您有numpy,您可以将错误函数制成表格,插值(np.interp或自己滚动),然后使用numpy矢量化操作一次计算多个值 大致上(这是在CPython上,我不确定np.interp是否在numpy中工作) >>> import math >>&g

我试图在PyPy上计算许多高斯函数的CDF,但使用
math.erf
进行计算很慢

我在PyPy上没有SciPy,所以我不能用它。然而,我有NumPy


除了编写自己的C扩展名之外,我在PyPy上执行此操作的最快方法是什么?

如果您有numpy,您可以将错误函数制成表格,插值(
np.interp
或自己滚动),然后使用numpy矢量化操作一次计算多个值

大致上(这是在CPython上,我不确定
np.interp
是否在numpy中工作)

>>> import math
>>> x = np.linspace(-3, 3, 101)    # example only, better use e.g. Chebyshev nodes
>>> y = [math.erf(_) for _ in x ]
>>> xval = [-0.1, 0.4, 0.9]
>>> np.interp(xval, x, y)
array([-0.11237943,  0.42808831,  0.79690821])