Cython is usually the most best option for maintainable, high performance numerics with Python these days -- it's the option of choice for scikit-learn and pandas. Numba can be easier in some cases (no manual typing necessary) but is still pretty limited in some ways.