This example is perfect for showing how fast Numba can be with when put right with Nopython mode (@jit(nopython=True) or@njit)
import numpy as np import numba as nb from numba import jit, njit import time start_time = time.time() # @nb.jit(nb.float64[:](nb.float64[:])) @njit def f(arr): res = np.zeros(len(arr)) for i in range(len(arr)): res[i] = (arr[i]) ** 2 return res arr = np.random.rand(10000000) print(f(arr)) print(f(arr).shape) print("--- %s seconds ---" % (time.time() - start_time))
Original (without @njit) takes 7.3
While Numba takes only 0.58s
That’s more than 7 times faster!