Since I've been getting into Machine Learning/Artificial Intelligence recently, I've been looking at various computing environments recently. Some of the contenders are:
- MATLAB - The traditional software stack for doing machine learning and statistical analysis
- GNU Octave - An open-source MATLAB clone.
- R - An open source clone of a statistical computing environment called S.
- Julia - A language for doing statistical analysis. The goals are to compete with Matlab and R.
- Matplotlib/Pylab/SciPy/NumPy - see below
Of these, I've tried Octave and Matplotlib. Matplotlib/Pylab is the software stack consisting of:
- IPython - an interactive REPL for Python with things like tab completion
- Matplotlib - a graphical plotting library
- NumPy - a matrix library
- SciPy - a collection of scientific and mathematical algorithms
I've only played with Matplotlib/Pylab a little bit, but I like what I've seen so far. Here's 2 quick examples:
1. Displaying a Histogram of a gaussian distribution
First, make sure to run
from matplotlib import * and
from numpy import *
(I love how there are bell-shaped curves in the array representation of the histogram) :)
2. Plotting a function (y=x^2+10):
Also, there is a really good video from PyCon 2012 on Matplotlib: Plotting with Matplotlib.