I think the real reason is that no matter what crazy machine learning idea you want to implement, you basically just import the data and pass it to a function. Bam. You just trained a convolutional neural net. Calculate the hamming distance? Sure. No idea what that is, but I'll throw it into a random forest with a couple other idea when I'm done, then plot the most important variables. You never really have to learn a new API, which I'm always doing in Python. I don't want to learn a whole new framework: I heard of a thing and I want to see what it does with my data. Python never lets things be as simple as:
from machinelearning import svm
with open('/home/me/programming/data.csv') as f:
data = f.read()
print(svm(data))
That's why R, which is an awful, buggy, and weird language, is so pleasant to use for stats and ML.