使用numexpr优化numpy中的数值运算

时间:2018-05-11 18:53:16

标签: python arrays numpy 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编写此内容的等效方法是什么?

1 个答案:

答案 0 :(得分:1)

np.sqrtsqrt; np.expexp

import numexpr as ne
y = ne.evaluate(
    '.5 * exp(-x ** 2) * x ** (1 / 3)' 
    '+ exp(-x) * (1.5 * sqrt(x)'
    '+ .3 / (1. + x))'
)