在Python中评估数学公式(使用自定义变量名称和下标)

时间:2016-01-07 19:52:18

标签: python math

我需要为时间序列评估一组数学公式(字符串格式),例如:

" y = 0.5 * gdp[t] + 0.2 * ln( sp500[t-2] ) "

数学公式有两个我需要注意的元素:

  • 引用时间序列/数组的自定义变量名称(例如gdp
  • 变量下标表示时间序列中的t-1t-2等索引

是否有人有一种相对强大/有效的方法来评估此公式为给定输入的数字(例如t = 5)。理想情况下,快速的方法,但这是一个奢侈品。

1 个答案:

答案 0 :(得分:2)

我不确定您希望如何使用gdpsp500,但这是一个eval的例子,可以帮助您入门:

import math

s = "0.5 * gdp[t] + 0.2 * ln( sp500[t-2] ) "
gdp = [0,1,2,3,4,5]
sp500 = [0,1,2,3,4,5]
t = 5
ln = lambda x: math.log(x)

y = eval(s)
print y # prints 2.71972245773