我有一个包含 Sympy 表达式的数组,如下所示:
np.Array([A + B, C + D - 2.0*E + 10, ...])
表达式可以改变,执行时间在这里非常重要。 我在字典中有 A、B、C、D 的值。值是可迭代的,例如
A = [1,2,3,4]
。
计算每个表达式的最快方法是什么? eval 和lambify 哪个更快?有矢量化的方法来做到这一点吗?
你可以使用动态变量的概念来做到这一点,甚至不需要 numpy。
dct = {'A':2, 'B':4, 'C':5, 'D':6, 'E':2}
#Iterate over the dct
for key,value in dct.items():
#make keys as variable names
dynvar = key
#make the values as variable-values
globals()[dynvar] = value
#Change the expressions according to your requirement
x = [A + B, C + D - 2.0*E + 10, D*E,]
print(x) #Output: [6, 17.0, 12, 4]