使用 numexpr 优化 numpy 中的数值运算
Optimising numerical operations in numpy using numexpr
我刚开始使用 numexpr
,虽然 github 存储库似乎有一些基本的使用示例,但我无法清楚地理解这些如何适用于一些复杂的情况.假设我有一个函数:
def func(x):
#x is a numpy array of very large size
return 0.5*np.exp(-x**2)*x**(1/3)+np.exp(-x)*(1.5*np.sqrt(x)+0.3/(1.+x))
用 numexpr
写这个的等效方法是什么?
np.sqrt
→sqrt
; np.exp
→ exp
import numexpr as ne
y = ne.evaluate(
'.5 * exp(-x ** 2) * x ** (1 / 3)'
'+ exp(-x) * (1.5 * sqrt(x)'
'+ .3 / (1. + x))'
)
我刚开始使用 numexpr
,虽然 github 存储库似乎有一些基本的使用示例,但我无法清楚地理解这些如何适用于一些复杂的情况.假设我有一个函数:
def func(x):
#x is a numpy array of very large size
return 0.5*np.exp(-x**2)*x**(1/3)+np.exp(-x)*(1.5*np.sqrt(x)+0.3/(1.+x))
用 numexpr
写这个的等效方法是什么?
np.sqrt
→sqrt
; np.exp
→ exp
import numexpr as ne
y = ne.evaluate(
'.5 * exp(-x ** 2) * x ** (1 / 3)'
'+ exp(-x) * (1.5 * sqrt(x)'
'+ .3 / (1. + x))'
)