我有一個函數可以評估多個變量中多項式的項。輸入是每個變量的權力列表。例如,對於兩個變量和二階它看起來像這樣,優化Python多項式評估
def f(x,y):
return [1, x[1], y[1], x[1]*y[1], x[2], y[2]]
x = [2**0, 2**1, 2**2]
y = [3**0, 3**1, 3**2]
>>> f(x,y)
[1,2,3,6,4,9]
在現實中的作用是高階,有很多變量,這樣平均有幾千項(其實,我創建的功能用eval語句運行時間,但這並不重要)。該功能位於最內圈,目前是速度瓶頸。分析器告訴我,我大部分時間都花在__times__上。
創建C擴展模塊的缺點,任何人都可以看到任何優化空間?
編輯:上面的例子試圖evaulate 1 + x + y + xy + x^2 + y^2
與x = 2
和y = 3
,除了沒有加入他們,只是把每學期在列表中。
添加它們是好的(有一些係數A,B,...),即所有我想要做的是計算:
A + B*x + C*y + D*x*y + E*x^2 + F*y^2
。
函數多久調用一次相似或相同的參數? – 2012-04-08 07:53:45
我真的不確定你的腳本是做什麼的,但你有沒有試過看scipy/numpy? – 2012-04-08 07:55:02
@NolenRoyalty很好的問題,不幸的是答案是每個變量每次都是不同的。 – marius 2012-04-08 08:00:25