Wednesday, May 8, 2013

Comparing execution speed of Python, NumPy, Matlab, Fortran, etc

This is an interesting comparison of the numerical performance of python, numpy, fortran, java and matlab in performing some array operations.

The post is outdated (it is from 2009). Still, it demonstrates the importance of vectorizing array operations. It also shows that lower level languages like fortran will almost always have the upper hand in execution speed (but development time can easily balance that in python).

It would be worth repeating this comparison with the newer versions of numpy, python, matlab and fortran compilers to see what has changed in terms of relative speedups among the different languages. It would also be nice to include a "parallel" case of these examples using some multiprocessing module in python in a multicore machine (e.g. multiprocessing, iPython parallel).

Saturday, April 6, 2013

Shortcut to open an iPython notebook and web browser from the terminal

In order to start an iPython notebook server and open a notebook in your browser you can issue the command


>>> ipython notebook --pylab inline

Sometimes, mysteriously, the web browser will not automatically open after issue the above command on Mac OS X. In that case, you can use the command



>>> ipython notebook --pylab inline && open http://127.0.0.1:8888/'

Thursday, February 28, 2013

Library of plotting routines for Python and IDL

Last January I was walking around the place where the posters were being presented at the American Astronomical Society meeting in Long Beach. I stumbled upon a very interesting poster advertising the astroplotlib web page.

The purpose of this page, in the language of its curator, is that it is
[...] a multi-language astronomical library of plots. It is a collection of templates that are useful to create paper-quality figures. So far all codes are written in IDL, some in Python and very few in Mathematica. 

Most of the codes available there are written in IDL (ugh) but there are quite a few for Python. I hope the python codebase will grow in the future.

For instance, I have been using Bayesian modeling of data and I need to plot contours for the joint distribution of parameters as well as the separate posterior distribution histograms, all in the same plot. After a quick search in the website, I found the code I need to get started. 

If you have contributions (codes or suggestions), please contact the webmaster, Leonardo Ubeda.



Thursday, February 21, 2013

Example of how to do a great animation in Python

If you are interested in creating animation of simulation data in Python, perhaps this should give you some inspiration: Animating the Lorenz System in 3D.

The author solved the Lorenz system of equations and plotted the time evolution of the system in 3D. It illustrates how to make a great animation in a simple way.

You should also check out the Matplotlib Animation Tutorial written by the author, which provides the background on the Lorenz animation.

Great gallery of IPython notebooks

You know you can create IPython notebooks "a la Mathematica" and put them in your webpage, right? That's a great way of sharing a step-by-step analysis workflow with someone.

I stumbled upon a great collection of IPython notebooks that illustrate a vast range of capabilities: data analysis, statistics, interfacing with C/Fortran, plots, numpy tricks and a lot more!

You should check it out: A gallery of interesting IPython notebooks at github (via @profjsb).


Monday, January 14, 2013

Nice matplotlib tutorial

While I was searching for a solution on how to plot correctly the ticks in the x axis of a plot, I came across this very nice and clear matplotlib tutorial.

Definitely check it out.