我需要函數聚合器,它將兩個列表減少爲一個總數。 '物品'應該是布爾人的矢量。Python;實現按元素向量乘法的最高性能方法
所以,我寫這些功能:
def element_wise_multiplication(weights, items):
return map(lambda x, y: x * y, weights, items)
def total(weights, items):
return sum(element_wise_multiplication(weights, items))
他們看起來OK我,但問題是,探查表明,隨着它拉姆達行負責運行的95%,所以它的性能幾乎不可接受。
什麼是最有效的實現方法?
P.S.我知道NumPy的數組,但我想在這個上使用PyPy。或者在這種情況下使用它不值得嗎?
在PyPy上,只需要在簡單的循環中編寫它就會好得多。再加上你的代碼會更具可讀性。 – fijal 2012-01-12 12:14:47