4 ms·
Faster than fastest: import numba @numba.vectorize(nopython=True) def add2(x, y): return x + 2 * y add2(X, Y, out=X) This is 40% faster on my m
by jzwinck 9y ago
Faster than fastest:
import numba
@numba.vectorize(nopython=True)
def add2(x, y):
return x + 2 * y
add2(X, Y, out=X)
This is 40% faster on my machine. It only needs to read X and Y once, and write X once. It does take a bit of extra time on the first run, because it uses JIT compilation (LLVM).
Numba lets you implement vectorized operations in terms of elements. In the above, x and y are scalars. You get support for various NumPy "ufunc" features for free, such as the out parameter used here.
Ref: http://numba.pydata.org/numba-doc/dev/user/vectorize.html http://numba.pydata.org/numba-doc/dev/user/vectorize.html