What advantages would Python have over a more specific tool such as R or MATLAB/Octave in handling ML? I could read in data very quickly I imagine using Python, manipulate and/or clean it, and feed it into a nice classification algorithm, but in the long run lack of speed would kill me if I had to roll my own classification algorithms and I was working with any kind of real-life data set.
I believe the reasons for choosing Python over R/Matlab/Octave for presenting machine learning within texts is more to do with availability and accessibility than technical capabilities or suitability of the languages/tools. All can do the job as far as the texts are concerned, but Python is more widely obtainable than commercial alternatives, is cross platform (though so are the others that are listed), and has more "conventional syntax" given other mainstream programming languages.
I have typically favoured Matlab over Python due to a lot of convenient built-in features of the program and widespread support of state of the art machine learning methods; but there are many features within Python that come in handy, particularly when developing larger machine learning applications, where data structures and design patterns take on a larger role.
Besides, once you know the underlying principles of the machine learning techniques you are interested in, I can't really see how using any of these tools/languages would cause any great disadvantage compared to another. The worst case would be that the technique requires extra work since it is not implemented/included within your chosen environment or is "less implemented" (i.e. there are less building blocks, which need to be first developed before bringing them together as a complete implementation).