Calmcode - numba: introduction

Introduction

1 2 3 4 5 6

Numba is a tool that can make numeric code much faster in python. It offers a just in time compiler that can turn your functions into fast machine code and it can offer critical speedups. It also plays nice with numpy.

You can install numba via pip.

python -m pip install numba

Once installed you should be able to repeat the listed experiment.

def func_one(n):
    result = 0
    for i in range(n):
        squared = n * n
        result += squared
    return result

def func_two(n):
    result = 0
    squared = n * n
    for i in range(n):
        result += squared
    return result

You can test the speed of both functions.

%timeit func_one(10000)
%timeit func_two(10000)

You can now try again after using the decorator.

import numba as nb

@nb.njit
def func_one(n):
    result = 0
    for i in range(n):
        squared = n * n
        result += squared
    return result

@nb.njit
def func_two(n):
    result = 0
    squared = n * n
    for i in range(n):
        result += squared
    return result

func_one(1); func_two(2);

If you now time both functions you'll notice they after faster and equally fast.