Is there a pythonic way to carry around metadata that describes the training examples, such that it preserves (i.e., order) after shuffling and splitting (train/test)?
X = np.array([[1,2,3],[4,5,6]]) # examples
y = [0,1] # labels
meta = ["Hot day", "Cold day"] # metadata