The statistical software Stata allows short text snippets to be saved within a dataset. This is accomplished either using notes and/or characteristics.
This is a fea
A practical way could be to embed meta-data directly inside the Numpy array. The advantage is that, as you'd like, there's no extra dependency and it's very simple to use in the code. However, this doesn't fully answers your question, because you still need a mechanism to save the data, and I'd recommend using jpp's solution using HDF5.
To include metadata in an ndarray
, there is an example in the documentation.
You basically have to subclass an ndarray
and add a field info
or metadata
or whatever.
It would give (code from the link above)
import numpy as np
class ArrayWithInfo(np.ndarray):
def __new__(cls, input_array, info=None):
# Input array is an already formed ndarray instance
# We first cast to be our class type
obj = np.asarray(input_array).view(cls)
# add the new attribute to the created instance
obj.info = info
# Finally, we must return the newly created object:
return obj
def __array_finalize__(self, obj):
# see InfoArray.__array_finalize__ for comments
if obj is None: return
self.info = getattr(obj, 'info', None)
To save the data through numpy
, you'd need to overload the write
function or use another solution.