Python Array Data Structure with History
Have you considered writing a log file?  A good use of memory would be to have the arrays contain only the current relevant values but build in a procedure where the update statement could trigger a logging function.  This function could write to a text file, database or an array/dictionary of some sort.  These types of audit trails are pretty common in the database world.
I recently needed to store large array-like data (sometimes numpy, sometimes key-value indexed) whose values would be changed over time (t=1 one element changes, t=2 another element changes, etc.). This history needed to be accessible (some time in the future, I want to be able to see what t=2’s array looked like). 
An easy solution was to keep a list of arrays for all timesteps, but this became too memory intensive. I ended up writing a small class that handled this by keeping all data “elements” in a dict with each element represented by a list of (this_value, timestamp_for_this_value). that let me recreate things for arbitrary timestamps by looking for the last change before some time t, but it was surely not as efficient as it could have been. 
Are there data structures available for python that have these properties natively? Or some sort of class of data structure meant for this kind of thing?