Niedawno natrafiłem na great SO post, w którym użytkownik sugeruje, że numpy.sum
jest szybszy niż Python sum
, jeśli chodzi o obsługę tablic NumPy.Czy operacje numeryczne są szybsze dzięki funkcjom NumPy niż operatorom?
Pomyślałem, że operacje na elementach NumPy są szybsze dzięki funkcjom NumPy niż operatorzy? Jeśli tak, to dlaczego tak się dzieje?
Rozważmy następujący przykład.
import numpy as np
a = np.random.random(1e10)
b = np.random.random(1e10)
Will np.subtract(a, b)
być wiarygodnie szybciej niż a - b
?
'np.subtract' ma dodatkowy kod do konwersji swoich argumentów na tablice. Tak więc działa 'np.subtract ([1,2,3], [4,5,6])). 'a-b' nie potrzebuje tego dodatkowego kodu, więc jest odrobinę szybszy. 'np.subtract' również obsługuje parametr słowa wyjściowego' out' ... – unutbu
Dobrze, @unutbu. Obie te dodatkowe funkcje 'np.subtract 'są jednorazowymi problemami przy wejściu/wyjściu z funkcji. Są one "O (1)", jeśli ich nie używasz, więc będą coraz mniej znaczące narzuty z coraz większymi tablicami. –