parameter_draws()
Extract posterior draws for one or more variables into a tidy Polars DataFrame.
Usage
parameter_draws(
dt, *var_names, group="posterior", chain_dim="chain", draw_dim="draw"
)Non-sample dimensions (everything except chain and draw) are detected automatically from the xarray DataArray’s .dims – no bracket syntax needed.
Parameters
dt: xr.DataTree or arviz.InferenceData-
ArviZ InferenceData or xarray DataTree from PyMC sampling.
*var_names: str-
Names of variables to extract. Dimensions are auto-detected.
group: str = "posterior"-
Which InferenceData group to extract from (e.g., “posterior”, “prior”). Default “posterior”.
chain_dim: str = "chain"-
Names of the chain and draw dimensions.
draw_dim: str = "chain"- Names of the chain and draw dimensions.
Returns
pl.DataFrame- Tidy DataFrame with columns: chain, draw, [named dims…], [var_names…] One row per unique (chain, draw, [dim combo]).
Examples
Scalar parameter (no duplication)
parameter_draws(dt, “sigma”) # -> columns: chain, draw, sigma # -> 4 x 1000 = 4,000 rows
Array parameter – dims auto-detected from the DataArray
parameter_draws(dt, “beta”, “intercept”) # -> columns: chain, draw, groups, beta, intercept # -> 4 x 1000 x 4 = 16,000 rows (NOT 320,000)
Mix of scalar and array (sigma broadcast-joined to group-level params)
parameter_draws(dt, “beta”, “sigma”) # -> columns: chain, draw, groups, beta, sigma # -> 4 x 1000 x 4 = 16,000 rows; sigma repeated per group (explicit and expected)
Different groups (prior vs posterior)
parameter_draws(dt, “beta”, group=“prior”) # -> extract prior draws for beta
Multi-dimensional variable
parameter_draws(dt, “gamma”) # -> columns: chain, draw, time, group, gamma