arviz.concat(*args, dim=None, copy=True, inplace=False, reset_dim=True)[source]#

Concatenate InferenceData objects.

Concatenates over group, chain or draw. By default concatenates over unique groups. To concatenate over chain or draw function needs identical groups and variables.

The variables in the data -group are merged if dim are not found.


Variable length InferenceData list or Sequence of InferenceData.

dimstr, optional

If defined, concatenated over the defined dimension. Dimension which is concatenated. If None, concatenates over unique groups.


If True, groups are copied to the new InferenceData object. Used only if dim is None.


If True, merge args to first object.


Valid only if dim is not None.


A new InferenceData object by default. When inplace==True merge args to first arg and return None

See also


Add new groups to InferenceData object.


Extend InferenceData with groups from another InferenceData.


Use concat method to concatenate InferenceData objects. This will concatenates over unique groups by default. We first create an InferenceData object:

In [1]: import arviz as az
   ...: import numpy as np
   ...: data = {
   ...:     "a": np.random.normal(size=(4, 100, 3)),
   ...:     "b": np.random.normal(size=(4, 100)),
   ...: }
   ...: coords = {"a_dim": ["x", "y", "z"]}
   ...: dataA = az.from_dict(data, coords=coords, dims={"a": ["a_dim"]})
   ...: dataA
Inference data with groups:
	> posterior

We have created an InferenceData object with default group ‘posterior’. Now, we will create another InferenceData object:

In [2]: dataB = az.from_dict(prior=data, coords=coords, dims={"a": ["a_dim"]})
   ...: dataB
Inference data with groups:
	> prior

We have created another InferenceData object with group ‘prior’. Now, we will concatenate these two InferenceData objects:

In [3]: az.concat(dataA, dataB)
Inference data with groups:
	> posterior
	> prior

Now, we will concatenate over chain (or draw). It requires identical groups and variables. Here we are concatenating two identical InferenceData objects over dimension chain:

In [4]: az.concat(dataA, dataA, dim="chain")
Inference data with groups:
	> posterior

It will create an InferenceData with the original group ‘posterior’. In similar way, we can also concatenate over draws.