Does this work correctly with sparse arrays?  I'm assuming they fail the np.ndarray check and are handled by cPickle?  Can we add a comment here to indicate that?