1
一般來說,log和exp函數應該大致相同的速度。我期望numpy和scipy的實現是相對簡單的包裝。 numpy.log()
和scipy.log()
具有與預期相似的速度。但是,我發現numpy.log()
比這些exp()
函數慢約60%,scipy.log()
慢100%。有誰知道這個的原因嗎?爲什麼numpy和scipy的exp()比log()更快?
一般來說,log和exp函數應該大致相同的速度。我期望numpy和scipy的實現是相對簡單的包裝。 numpy.log()
和scipy.log()
具有與預期相似的速度。但是,我發現numpy.log()
比這些exp()
函數慢約60%,scipy.log()
慢100%。有誰知道這個的原因嗎?爲什麼numpy和scipy的exp()比log()更快?
不知道爲什麼你認爲兩者應該「大致相同的速度」。這是真的,這兩個可以使用泰勒級數(其中,甚至本身就意味着小而不分析誤差項)來計算,但隨後的數值招數一命嗚呼。
例如,an algebraic identity可用於改造原有進出口。泰勒系列變爲更高效的2跳功率系列。但是,對於power系列,請參閱here關於個案優化的討論,其中一些涉及查找表。
你給了哪個參數的功能 - 相同?每個最差的一個?
結果的準確性是什麼?你如何衡量每個人的準確性:絕對的,相對的?
編輯應當指出的是,這些庫也可以有different backends。
在我的簡單測試中,'np.log'快了60%。是的,使用'math.log'和'math.exp'的列表解析給出了相同的時間。但是numpy代碼不是(必然)使用'math'等價物的簡單編譯循環。 – hpaulj
你爲什麼認爲log和exp應該是「大致相同的速度」? – tmyklebu