On Sat, 17 May 2014 23:13:11 -0400, Bill Cunningham wrote: > Does Python have good mathematical capabilities? I am interested in > learning a second language for mathematical purposes. I am considering > looking at python, perl, fortran, Adas out. It looked too complicated to > learn. Perl looked easy and I haven't really looked into python.

## Advertising

Yes, Python is excellent for mathematics. Python is rapidly taking over as the language of choice for scientific computing: http://www.talyarkoni.org/blog/2013/11/18/the-homogenization-of-scientific-computing-or-why-python-is-steadily-eating-other-languages-lunch/ You say you want to learn a *second* language, but you don't say what your first language is. Nor do you say what sort of mathematics you wish to do, or at what level. Depending on what you want to do, you might be best off with Mathematica, if you can afford it. Otherwise, there's an Open Source and free alternative, Sage, which uses Python. You may find that the IPython interactive interface to Python is useful. It presents an interface which should be familiar to anyone with experience with Mathematica. For symbolic maths, I like Sympy, where you can do things like this: py> from sympy import * py> x, y = symbols('x y') py> diff(cos(3*x+1), x) -3*sin(3*x + 1) py> integrate(-3*sin(3*x+1), x) cos(3*x + 1) There is also Numpy and Scipy, for heavy-duty numerical mathematics. I recommend that you start with Python 3.4, as it is the latest version of Python, and also because I'm the author of the statistics standard library. It's not a full-blown professional statistics language like R, Matlab or SAS, but if you need basic scientific calculator level statistics it is useful. Feedback on the library is always welcome. As far as other languages go, I think that Fortran is still an excellent language if you need to write high-powered, low-level numeric functions, but if you just want to *use* pre-existing libraries, you are better off with a high-level language like Python which offers interfaces to Fortran libraries. Numpy and Scipy are very good for that. As far as Perl goes, I find that it suffers from the same weakness as R: http://www.talyarkoni.org/blog/2012/06/08/r-the-master-troll-of-statistical-languages/ that is, the learning curve is far to steep for my liking. I find Perl too inconsistent, with far too many special cases and tricks, and not enough of a consistent design. It's not as bad as PHP, but it gives me the impression of a language where the only design principle is "Oh, that looks cool. Hand me the welding iron, and I'll weld it on somewhere. Anywhere will do." -- Steven D'Aprano http://import-that.dreamwidth.org/ -- https://mail.python.org/mailman/listinfo/python-list