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()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:
- 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:
- 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]]].
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:
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