[x] hyp.tools.normalize: add support for reduce and align
new data object
[x] all functions: add support for a new "HypO" object that has the following fields:
.data: the data (a list, HypO object, pandas dataframe, or numpy array)
.reduce: dictionary of reduce model/args
.align: dictionary of align model/args
.normalize: string with normalization method (or None)
.xform: a function that can take new data (in any form) and applies the sequence of transformations implied by the reduce, align, and normalize args
.args: save out all non-xform arguments
.plot: a function that takes in new data (with no other arguments), transforms it with the .xform function, plots it using any specified args (.args), and returns a new HypO objects. And if no data is specified, use .data as the data.
.figure: handle to the figure
.axes: handle to the axes
.lineani: handle to the animation (None if animate=False)
.version: hypertools version number
[x] in normalize, align, and reduce, add support for model/method = None (just return the original data). This will help with the .xform function.
caching
[x] in normalize, align, and reduce, add a "save" function that saves the results of time-consuming operations (and pre-loads the answer if they exist). This requires computing a hash for the data and normalize/align/reduce arguments. (see notes in slack for more details)
selecting number of components
[x] hyp.tools.describe: extend describe_pca to support other models
consistency of API
hyp.tools.normalize: add support for reduce and alignnew data object
[x] all functions: add support for a new "HypO" object that has the following fields:
[x] in normalize, align, and reduce, add support for model/method = None (just return the original data). This will help with the .xform function.
caching
selecting number of components