AxesArray and EnsemblingOptimizer
Pre-releaseThis is a pre-release of major version 2 of SINDY
This pre-release preserves a significant amount of backwards compatibility that
will be removed in 2.0.0.
Internal array structure is made explicit via the
AxesArray
class. AxesArray
objects carry axis label attributes, such as
arr.ax_time
, as well as shape attributes, such as arr.n_spatial
.
Currently, these attributes are incorrect when slicing, but are preserved in
nearly all other operations.
This release also adds an EnsemblingOptimizer
class to handle data and library
bagging. While passing ensembling parameters via feature libraries and SINDy
objects is still supported, they simply dispatch to an EnsemblingOptimizer
.
Stable versions of 2.x will remove this backwards compatibility, forcing the
use of the EnsemblingOptimizer
. In addition, ensembling both data and
library terms creates each ensemble member from one data bag and one library
bag. Previously, each ensemble member came from one library bag and another
ensemble of data bags, which required nested loops and
time.
Problems that might be fixed before 2.0.0:
- Allow passing
AxesArray
objects to pysindy directly - add
__getitem__
and__setitem__
toAxesArray
to handle slicing correctly and
re-enableAxesWarning
s when trying to create anAxesArray
with missing or
incompatible axes labels. - Fix binder links to example documentation
Additional changes possible in version 2.0.0: - New method for SINDyPI?
- Derivative methods now also return smoothed X values.