In this recipe, we will look at a short introduction on how to optimize code with Cython and Numba. These are competitive approaches; Cython is a superset of Python that allows you to call C functions and specify C types. Numba is a just-in-time compiler that optimizes the Python code.
As an example, we will reuse the distance recipe from Chapter 7, Using the Protein Data Bank. We will compute the distance between all of the atoms in a PDB file.
Cython normally requires specifying your optimized code in a separate .pyx
file (Numba is a more declarative solution without this requirement). As IPython provides a magic to hide this, we will use IPython here. However, note that if you are on plain Python, the Cython development will be a bit more cumbersome. As usual, this is available in the Chapter09/Cython_Numba.ipynb
Notebook file.