Tôi đang ở vị trí hơi bất hạnh để cố gắng chuyển đổi một chương trình từ độ sâu của CERN ROOT thành python. Trong mã ROOT (CINT trong chính nó là một IMO abomination), người ta có thể lưu trữ các chức năng toán học như là một "chuỗi" và vượt qua các ROOT để phù hợp, âm mưu, vv vì ROOT định nghĩa chúng như là "chuỗi".Python/Numpy/Scipy - Chuyển chuỗi thành hàm toán học
Tại thời điểm này, các chức năng toán học được lưu trữ trong các tập tin văn bản đơn giản như một dòng, ví dụ:
(1+[1])^(1+[1])/TMath::Gamma(1+[1]) * x^[1]/[0]^(1+[1]) * exp(-(1+[1])*x/[0])
và sau đó được tách ra như dây đàn bởi C++ khi đọc trong file. Có cái gì đó tương tự trong python? Tôi biết về numexpr, nhưng tôi không thể làm cho nó hoạt động tương đương với ở trên, tức là
(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])
Cảm ơn trước.
bạn có thể gọi hàm ROOT từ trăn, vì vậy bạn có thể tạo ra một 'ROOT.TF1' trong python, như trong C++ –