Replace numpy.ndarray with pandas.DataFrame
Our current codebase is entirely based on
ndarray subclasses. Most functions are littered with typical Numpy idioms like
hpd_curve[:,0] with indexes that are both opaque to new contributors and difficult for the current maintainer.
We should explore introducing classes based on
DataFrame with column labelling, making the entire codebase more readable.
Based on several tests done so far, using pandas.DataFrame doesn't necessarily make the code more readable or faster.
First of all many operations like resampling and interpolating assume that the underlying data is a time series (which is conceptually correct but of course the timespan supported by pandas is much shorter than what we need to handle dates 50000 years before present).
Currently our main classes like CalibrationCurve and CalendarAge are subclasses of numpy.ndarray, that execute one or more functions when they are instantiated. This seems more convoluted with pandas.
So, even if I don't have reached a conclusion yet, I think it may be more productive to use index arrays with the current numpy-based implementation.
Deleting a branch is permanent. It CANNOT be undone. Continue?