Accelerating pure Python code with Numba and Just-In-Time compilation
Numba (http://numba.pydata.org) is a package created by Anaconda, Inc (http://www.anaconda.com). Numba takes pure Python code and translates it automatically (JIT) into optimized machine code. In practice, this means that we can write a non-vectorized function in pure Python, using for
loops, and have this function vectorized automatically by using a single decorator. Performance speedups when compared to pure Python code can reach several orders of magnitude and may even outmatch manually-vectorized NumPy code.
In this section, we will show you how to accelerate pure Python code generating a Mandelbrot fractal.
Getting ready
Numba should already be installed in Anaconda, but you can also install it manually with conda install numba
.
How to do it...
Let's import NumPy and define a few variables:
>>> import numpy as np import matplotlib.pyplot as plt %matplotlib inline >>> size = 400 iterations...