我最近遇到了一個great SO post,其中一個用戶建議numpy.sum
在處理NumPy數組時比Python的sum
快。NumPy函數的元素操作比操作符更快嗎?
這讓我想到,使用NumPy函數對NumPy數組的操作比運算符更快嗎?如果是這樣,那麼爲什麼是這樣呢?
考慮下面的例子。
import numpy as np
a = np.random.random(1e10)
b = np.random.random(1e10)
將np.subtract(a, b)
可靠地快於a - b
?
'np.subtract'有額外的代碼將其參數轉換爲數組。因此'np.subtract([1,2,3],[4,5,6])'起作用。 'a-b'不需要這個額外的代碼,所以它更快一點。 'np.subtract'還處理'out'關鍵字參數... – unutbu 2014-09-12 21:51:34
好點,@unutbu。這兩個'np.subtract'的附加功能都是函數入口/出口處的一次性問題。如果你不使用它們,它們就是'O(1)',所以它們在更大和更大的陣列中會變得越來越微不足道。 – 2014-09-12 21:58:47