Optimizing python with Cython
korokithakis.net
korokithakis.net
As is always the case with optimizations, a good algorithm usually goes a lot further than highly optimized, low level code.
Though in practice I find that if performance really matters using numpy or writing a C extension module usually works out the best.
Also, it can't run on 64-bit machines. If you want to run it on OS/X 10.6, you need to build your own 32 bit python.
Or how about implementing the performance-sensitive parts as native C modules for Python.
I myself prefer sip or weave, but this is also just another way to write C that is tied into python.