It depends heavily on the algorithm.
There are several things for which writing code in C won't give you any benefit: matrix operations (dot products, element wise multiplications/applications of functions like sin or so, matrix inversions, QR decompositions, ...) because BLAS or LAPACK is called. This makes it possible to implement lots of algorithms easily.
You will have a tough time to match C's performance though when you need to do stuff like trees or huge graphs, which is the case for e.g. decision trees, KNN or sophisticated graphical models with lots of structure.
Some random thoughts:
- machine learning algorithms are notoriously hard to debug without a reference implementation; C is much harder to debug than Python.
- you will get to 90% of the performance of C in some cases with Python, but if you really need to be fast, you will have to stick with C
- Python is growing quite a big eco system for machine learning with theano and sklearn, it's a good time to join.