Jesus, when it rains, it pours.

I haven’t had time to post in quite a while – somewhat due to the NIH goldrush and somewhat due to the fact that I have been trying to get some manuscripts out the door that have been hanging around for far too long. Then, there’s planning-time wasted for NIH projects that didn’t pan out or that we couldn’t get together before the deadlines. I’m pretty sure everyone is sort of in the same boat.

Anyway, I’ve been working today with some things in numpy, which is probably one of my favorite libraries (in the whole world) for python. There’s things that you can do in numpy, that quite honestly, are probably far simpler than they **should** be.

Generally speaking, numpy is meant for calculations involving large arrays. That said, the flexibility of numpy continues to amaze – recently (within the past year), I’ve used it with great success for sequence comparisons and SNP characterization (numpy arrays can hold string values). This morning, i’ve used it to calculate summary counts of interactions between many objects over periods of time (essentially 100 x 200 x 200 element arrays). Of course, the array based nature of numpy lets you maintain structure (i,e. temporal structure) within the data, while performing the needed summary operations over the data.

Numpy wouldn’t be quite so great if it weren’t for the impressive number of methods available for numpy objects or it’s integration into the larger SciPy project. Per usual, numpy can be subclassed to do whatever you want.

Anyway, if you haven’t used it – do. And if you have, then you’re probably as impressed with it as I am.