If it is mathematics (with python) you need you can take a look at http://www.sagemath.org
Otherwise http://scikit-learn.org is a very nice machine learning library for python
Also, it depends whether you come from a computer science background or not. From a computer science perspective I would go for python. But if you come from another background matlab might be better. Python is also used as a glue between different approaches to data science.
Update
R was mentioned in later posts. There is good integration of R in python for instance in Sage above.
No one so far has mentioned R, which is increasingly being adopted for Machine Learning projects. Certainly it is my go-to, and the community that supports it is immense and growing. I would strongly recommend at least looking at it before making a final decision. Also Open source and recently adopted by Microsoft to add to their productivity stack.
Apologies for introducing a 3rd product but am also interested in learning and using a good simulation tool in my research. Witness was mentioned and am interested to know how good it is compared to the other two?
Although, Octave is compatible to Matlab, I prefer Matlab due to the following reasons: (1) the toolboxes provided by Matlab like statistic or optimization are more powerful and more robust. You'll need such toolbox for sophisticated machine learning tasks. (2) Octave has no GUI by default (but you can find some), while Matlab has a very good on. (3) The Matlab GUI supports many ways of debugging like breakpoints, check of the current values of variables etc. Very useful for implementing complicated algorithms.
The many drawback of Matlab is its costs, but usually universities do have special license agreements with Mathworks so that for students and scientific employees Matlab is free of costs.
MatLab campus licenses are available to the community, talking in general. Unfortunately, the development of MatLab is bigger than Octave nowadays. For educational goals, may be Octave is a good tool and very standard (gnuplot graphics). For science and other tasks, Octave is not enough.