IrregularArgvals#

class FDApy.representation.IrregularArgvals(dict=None, /, **kwargs)[source]#

Represent the argvals of irregular functional data.

This class extends the Argvals class to represent a dictionary where the keys are strings and the values are DenseArgvals. It provides additional functionality for working with argument values in scientific computing.

Attributes:
  • n_points (Dict[int, Tuple[int, …]]) – Number of sampling points of each dimension.

  • n_dimension (int) – Number of input dimension of the data.

  • min_max (Dict[str, Tuple[float, float]]) – Minimum and maximum sampling points for each dimension.

Methods

clear()

compatible_with(values)

Raise an error if Argvals is not compatible with Values.

concatenate(*argvals)

Concatenate IrregularArgvals objects.

copy()

fromkeys(iterable[, value])

get(k[,d])

items()

keys()

normalization()

Normalize the IrregularArgvals.

pop(k[,d])

If key is not found, d is returned if given, otherwise KeyError is raised.

popitem()

as a 2-tuple; but raise KeyError if D is empty.

setdefault(k[,d])

switch()

Switch the dictionary.

to_dense()

Concatenate IrregularArgvals to DenseArgvals.

update([E, ]**F)

If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v

values()

clear() None.  Remove all items from D.#
compatible_with(values)[source]#

Raise an error if Argvals is not compatible with Values.

Parameters:

values (Type[Values]) – A Values object.

Raises:

ValueError – When self and values do not have coherent common sampling points. The first dimension of values is assumed to represented the number of observations.

Return type:

None

static concatenate(*argvals)[source]#

Concatenate IrregularArgvals objects.

This function concatenates the IrregularArgvals objects by adding the one at the end of the other. The keys are updated to avoid duplicates.

Parameters:

argvals – The IrregularArgvals objects to concatenate.

Returns:

The concatenated IrregularArgvals.

Return type:

IrregularArgvals

copy()#
classmethod fromkeys(iterable, value=None)#
get(k[, d]) D[k] if k in D, else d.  d defaults to None.#
items() a set-like object providing a view on D's items#
keys() a set-like object providing a view on D's keys#
normalization()[source]#

Normalize the IrregularArgvals.

This function normalizes the Argvals by applying the following transformation to each observation:

\[X_{norm} = \frac{X - \min{X}}{\max{X} - \min{X}}.\]
Returns:

Normalized argvals.

Return type:

IrregularArgvals

pop(k[, d]) v, remove specified key and return the corresponding value.#

If key is not found, d is returned if given, otherwise KeyError is raised.

popitem() (k, v), remove and return some (key, value) pair#

as a 2-tuple; but raise KeyError if D is empty.

setdefault(k[, d]) D.get(k,d), also set D[k]=d if k not in D#
switch()[source]#

Switch the dictionary.

This function switches nested dictionaries. It convert an IrregularArgvals object (with signature dict[int, dict[str, npt.NDArray[np.float64]]]) into a dictionary with signature dict[str, dict[int, npt.NDArray[np.float64]]].

Returns:

The switched dictionnary.

Return type:

dict[str, dict[int, npt.NDArray[np.float64]]]

Examples

>>> argvals_1 = DenseArgvals(
...     {
...         'input_dim_0': np.array([1, 2, 3]),
...         'input_dim_1': np.array([4, 5, 6])
...     }
... )
>>> argvals_2 = DenseArgvals(
...     {
...         'input_dim_0': np.array([2, 4, 6]),
...         'input_dim_1': np.array([1, 3, 5])
...     }
... )
>>> argvals = IrregularArgvals({0: argvals_1, 1: argvals_2})
>>> argvals.switch()
{
    'input_dim_0': {0: array([1, 2, 3]), 1: array([2, 4, 6])},
    'input_dim_1': {0: array([4, 5, 6]), 1: array([1, 3, 5])}
}
to_dense()[source]#

Concatenate IrregularArgvals to DenseArgvals.

This function concatenates the sampling points of IrregularArgvals into a DenseArgvals object. The duplicated sampling points are dropped.

Returns:

The concatenation of the IrregularArgvals.

Return type:

DenseArgvals

Examples

>>> argvals_1 = DenseArgvals(
...     {
...         'input_dim_0': np.array([1, 2, 3]),
...         'input_dim_1': np.array([4, 5, 6])
...     }
... )
>>> argvals_2 = DenseArgvals(
...     {
...         'input_dim_0': np.array([2, 4, 6]),
...         'input_dim_1': np.array([1, 3, 5])
...     }
... )
>>> argvals = IrregularArgvals({0: argvals_1, 1: argvals_2})
>>> argvals.to_dense()
{
    'input_dim_0': array([1, 2, 3, 4, 6]),
    'input_dim_1': array([1, 3, 4, 5, 6])
}
update([E, ]**F) None.  Update D from mapping/iterable E and F.#

If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v

values() an object providing a view on D's values#

Examples using FDApy.representation.IrregularArgvals#

Representation of univariate and irregular functional data

Representation of univariate and irregular functional data

Representation of multivariate functional data

Representation of multivariate functional data