This is exactly what Numba is designed to help with. And it already works extremely well for such cases. Numba lets you have ease of use (un-typed containers) and speed (with typed-containers) in the same run-time and the same syntax. Here is are some IPython notebooks which illustrate:
https://www.wakari.io/nb/travis/Using_Numba https://www.wakari.io/nb/travis/numba
And the slides from PyCon Talk: https://speakerdeck.com/pyconslides/numba-a-dynamic-python-c...