Edit: as @aix suggested, a better (fairer) way to compare speed differences:
In [1]: %timeit abs(5) 10000000 loops, best of 3: 86.5 ns per loop In [2]: from math import fabs In [3]: %timeit fabs(5) 10000000 loops, best of 3: 115 ns per loop In [4]: %timeit abs(-5) 10000000 loops, best of 3: 88.3 ns per loop In [5]: %timeit fabs(-5) 10000000 loops, best of 3: 114 ns per loop In [6]: %timeit abs(5.0) 10000000 loops, best of 3: 92.5 ns per loop In [7]: %timeit fabs(5.0) 10000000 loops, best of 3: 93.2 ns per loop In [8]: %timeit abs(-5.0) 10000000 loops, best of 3: 91.8 ns per loop In [9]: %timeit fabs(-5.0) 10000000 loops, best of 3: 91 ns per loop
So it seems that abs() has only a slight advantage over fabs() for integers. For floats, abs() and fabs() show similar speed.
In addition to what @aix said, another thing to keep in mind is the speed difference:
In [1]: %timeit abs(-5) 10000000 loops, best of 3: 102 ns per loop In [2]: import math In [3]: %timeit math.fabs(-5) 10000000 loops, best of 3: 194 ns per loop
So abs() faster than math.fabs() .
KZ May 27 '12 at 7:22 2012-05-27 07:22
source share