Transformation
Transformation module for Macrodata Refinement (MDR).
This module provides functions for transforming macrodata through various statistical and mathematical operations.
- class mdr.core.transformation.NormalizationType(value)[source]
Bases:
EnumTypes of normalization methods.
- MINMAX = 1
- ZSCORE = 2
- ROBUST = 3
- DECIMAL_SCALING = 4
- mdr.core.transformation.normalize_data(data, method='minmax', params=None)[source]
Normalize data using the specified method.
- Parameters:
data (<MagicMock id='136017410896464'>) – Input data array
method (str | NormalizationType) – Normalization method (‘minmax’, ‘zscore’, ‘robust’, ‘decimal_scaling’)
params (Dict[str, Any] | None) – Additional parameters for normalization
- Returns:
Tuple of (normalized data array, normalization parameters)
- Return type:
- mdr.core.transformation.scale_data(data, factor, offset=0.0)[source]
Scale data by a factor and add an offset.
- mdr.core.transformation.apply_logarithmic_transform(data, base=10.0, epsilon=1e-10)[source]
Apply logarithmic transformation to the data.
- mdr.core.transformation.apply_power_transform(data, power, preserve_sign=True)[source]
Apply power transformation to the data.
- mdr.core.transformation.apply_rolling_window(data, window_size, window_function, center=True)[source]
Apply a rolling window function to the data.
- Parameters:
- Returns:
Data array with the rolling window function applied
- Return type:
<MagicMock id=’136017412003040’>
- mdr.core.transformation.transform_data(data, transformations)[source]
Apply a sequence of transformations to the data.
Overview
The transformation module provides functions for transforming data through various
statistical and mathematical operations. These transformations help prepare data
for analysis or visualization by standardizing scales, normalizing distributions,
or applying mathematical transformations.
Core Functions
- mdr.core.transformation.transform_data(data, transformations)[source]
Apply a sequence of transformations to the data.
Available Transformations
The module supports the following transformation types:
normalize: Scale data to a standard range (e.g., 0-1, -1 to 1)
scale: Apply linear scaling with a factor and offset
log: Apply logarithmic transformation
power: Apply power transformation
boxcox: Apply Box-Cox transformation for normalizing distributions
winsorize: Limit extreme values to reduce the effect of outliers
Usage Examples
Basic transformation of data:
import numpy as np
from mdr.core.transformation import transform_data
# Create sample data
data = np.array([1.0, 2.0, 3.0, 4.0, 5.0])
# Define transformation pipeline
transformations = [
{"type": "normalize", "method": "minmax"},
{"type": "scale", "factor": 2.0, "offset": 1.0}
]
# Apply transformations
transformed_data = transform_data(data, transformations)
print("Original data:", data)
print("Transformed data:", transformed_data)
Applying multiple transformations to multiple variables:
import numpy as np
from mdr.core.transformation import transform_data
# Create a dictionary of data variables
data_dict = {
"temperature": np.array([20.5, 21.3, 22.1, 21.7, 23.0]),
"pressure": np.array([101.3, 101.4, 101.5, 101.2, 101.1])
}
# Define transformation pipeline
transformations = [
{"type": "normalize", "method": "zscore"},
{"type": "scale", "factor": 1.0, "offset": 0.0}
]
# Apply transformations to each variable
transformed_dict = {}
for var_name, values in data_dict.items():
transformed_dict[var_name] = transform_data(values, transformations)