Python / Numpy / Scipy - Преобразование строки в математическую функцию

Я нахожусь в несколько неудачном положении, пытаясь преобразовать программу из глубин CERN ROOT в python. В ROOT-коде (CINT сам по себе является мерзостью imo) можно хранить математические функции как «строку» и передавать их в ROOT для подгонки, построения графика и т. Д. Из-за того, как ROOT определяет их как «строки».

В настоящий момент математические функции хранятся в простых текстовых файлах в виде строк, то есть

(1+[1])^(1+[1])/TMath::Gamma(1+[1]) * x^[1]/[0]^(1+[1]) * exp(-(1+[1])*x/[0])

, а затем извлекаются как строки C ++ при чтении в файл. Есть ли что-то подобное в питоне? Я знаю numexpr, но, похоже, не могу заставить его работать с эквивалентом вышеизложенного, то есть

(1+p[1])**(1+p[1])/scipy.special.Gamma(1+p[1]) * x**p[1]/p[0]**(1+p[1]) * numpy.exp(-(1+p[1])*x/p[0])

Заранее большое спасибо.

6
задан Ruggero Turra 24 January 2015 в 23:11
поделиться