Meet larry, he's a labeled array.

A larry is a data array that let's you label each row and column. A
two-dimensional larry, for example, contains a NumPy array to hold the data
and a list of row labels and column labels. A larry can have any dimension.

Alignment by label is automatic when you add (or subtract, multiply, divide)
two larrys.
    
larry has built-in methods such as movingsum, ranking, merge, shuffle,
zscore, demean, lag as well as typical Numpy methods like sum, max, std,
sign, clip. NaNs are treated as missing data.
 
You can archive larrys in HDF5 format using save and load or using a
dictionary-like interface.
    
larry adds the convenience of labels, provides many built-in methods, and
let's you use many of your existing NumPy array functions.

docs  http://larry.sourceforge.net
code  https://code.launchpad.net/~kwgoodman/larry/trunk
mail  http://groups.google.ca/group/pystatsmodels

Development mailing list:
mail: larry-discuss@lists.launchpad.net
archive: http://lists.launchpad.net/larry-discuss
