Source code for bayesflow.adapters.transforms.to_dict

import numpy as np
import pandas as pd

from bayesflow.utils.serialization import serializable

from .transform import Transform


[docs] @serializable class ToDict(Transform): """Convert non-dict batches (e.g., pandas.DataFrame) to dict batches"""
[docs] @classmethod def from_config(cls, config: dict, custom_objects=None): return cls()
[docs] def get_config(self) -> dict: return {}
[docs] def forward(self, data, **kwargs) -> dict[str, np.ndarray]: data = dict(data) for key, value in data.items(): if isinstance(value, pd.Series): if value.dtype == "object": value = value.astype("category") if value.dtype == "category": value = pd.get_dummies(value) value = np.asarray(value).astype("float32", copy=False) data[key] = value return data
[docs] def inverse(self, data: dict[str, np.ndarray], **kwargs) -> dict[str, np.ndarray]: # non-invertible transform return data