arviz.InferenceData.isel#
- InferenceData.isel(groups: Optional[Union[str, List[str]]] = None, filter_groups: Optional[Literal['like', 'regex']] = None, inplace: bool = False, **kwargs: Any) Optional[arviz.data.inference_data.InferenceDataT] [source]#
Perform an xarray selection on all groups.
Loops groups to perform Dataset.isel(key=item) for every kwarg if key is a dimension of the dataset. One example could be performing a burn in cut on the InferenceData object or discarding a chain. The selection is performed on all relevant groups (like posterior, prior, sample stats) while non relevant groups like observed data are omitted. See
xarray.Dataset.isel()
- Parameters
- groupsstr or list of str, optional
Groups where the selection is to be applied. Can either be group names or metagroup names.
- filter_groups{None, “like”, “regex”}, optional
If
None
(default), interpret groups as the real group or metagroup names. If “like”, interpret groups as substrings of the real group or metagroup names. If “regex”, interpret groups as regular expressions on the real group or metagroup names. A lapandas.filter
.- inplacebool, optional
If
True
, modify the InferenceData object inplace, otherwise, return the modified copy.- kwargsdict, optional
It must be accepted by
xarray.Dataset.isel()
.
- Returns
- InferenceData
A new InferenceData object by default. When
inplace==True
perform selection in-place and returnNone
See also
xarray.Dataset.isel
Returns a new dataset with each array indexed along the specified dimension(s).
sel
Returns a new dataset with each array indexed by tick labels along the specified dimension(s).
Examples
Use
isel
to discard one chain of the InferenceData object. We first check the dimensions of the original object:import arviz as az idata = az.load_arviz_data("centered_eight") idata
arviz.InferenceData-
<xarray.Dataset> Dimensions: (chain: 4, draw: 500, school: 8) Coordinates: * chain (chain) int64 0 1 2 3 * draw (draw) int64 0 1 2 3 4 5 6 7 8 ... 492 493 494 495 496 497 498 499 * school (school) object 'Choate' 'Deerfield' ... "St. Paul's" 'Mt. Hermon' Data variables: mu (chain, draw) float64 7.872 3.385 9.1 7.304 ... 1.767 3.486 3.404 theta (chain, draw, school) float64 12.32 9.905 14.95 ... 6.762 1.295 tau (chain, draw) float64 4.726 3.909 4.844 1.857 ... 2.741 2.932 4.461 Attributes: created_at: 2022-10-13T14:37:37.315398 arviz_version: 0.13.0.dev0 inference_library: pymc inference_library_version: 4.2.2 sampling_time: 7.480114936828613 tuning_steps: 1000
-
<xarray.Dataset> Dimensions: (chain: 4, draw: 500, school: 8) Coordinates: * chain (chain) int64 0 1 2 3 * draw (draw) int64 0 1 2 3 4 5 6 7 8 ... 492 493 494 495 496 497 498 499 * school (school) object 'Choate' 'Deerfield' ... "St. Paul's" 'Mt. Hermon' Data variables: obs (chain, draw, school) float64 15.9 -1.73 27.99 ... 7.052 6.946 Attributes: created_at: 2022-10-13T14:37:41.460544 arviz_version: 0.13.0.dev0 inference_library: pymc inference_library_version: 4.2.2
-
<xarray.Dataset> Dimensions: (chain: 4, draw: 500, school: 8) Coordinates: * chain (chain) int64 0 1 2 3 * draw (draw) int64 0 1 2 3 4 5 6 7 8 ... 492 493 494 495 496 497 498 499 * school (school) object 'Choate' 'Deerfield' ... "St. Paul's" 'Mt. Hermon' Data variables: obs (chain, draw, school) float64 -4.173 -3.24 -4.321 ... -3.853 -3.986 Attributes: created_at: 2022-10-13T14:37:37.487399 arviz_version: 0.13.0.dev0 inference_library: pymc inference_library_version: 4.2.2
-
<xarray.Dataset> Dimensions: (chain: 4, draw: 500) Coordinates: * chain (chain) int64 0 1 2 3 * draw (draw) int64 0 1 2 3 4 5 6 ... 494 495 496 497 498 499 Data variables: (12/16) max_energy_error (chain, draw) float64 -0.645 0.1782 ... 0.7405 -0.5795 energy_error (chain, draw) float64 0.001383 0.1622 ... 0.07346 lp (chain, draw) float64 -60.33 -57.8 ... -53.5 -55.58 index_in_trajectory (chain, draw) int64 -17 -12 -6 4 6 3 ... -6 5 -5 4 3 6 acceptance_rate (chain, draw) float64 0.9942 0.9635 ... 0.7359 0.8777 diverging (chain, draw) bool False False False ... False False ... ... smallest_eigval (chain, draw) float64 nan nan nan nan ... nan nan nan step_size_bar (chain, draw) float64 0.2573 0.2573 ... 0.2685 0.2685 step_size (chain, draw) float64 0.4435 0.4435 ... 0.2938 0.2938 energy (chain, draw) float64 69.12 63.2 63.15 ... 61.2 60.12 tree_depth (chain, draw) int64 5 4 5 3 4 4 4 4 ... 4 4 4 4 3 3 3 3 perf_counter_diff (chain, draw) float64 0.005272 0.002766 ... 0.001373 Attributes: created_at: 2022-10-13T14:37:37.324929 arviz_version: 0.13.0.dev0 inference_library: pymc inference_library_version: 4.2.2 sampling_time: 7.480114936828613 tuning_steps: 1000
-
<xarray.Dataset> Dimensions: (chain: 1, draw: 500, school: 8) Coordinates: * chain (chain) int64 0 * draw (draw) int64 0 1 2 3 4 5 6 7 8 ... 492 493 494 495 496 497 498 499 * school (school) object 'Choate' 'Deerfield' ... "St. Paul's" 'Mt. Hermon' Data variables: tau (chain, draw) float64 1.941 3.388 4.208 ... 0.8353 0.06893 2.145 theta (chain, draw, school) float64 4.866 4.59 -0.7404 ... -2.031 6.045 mu (chain, draw) float64 3.903 3.915 -1.751 ... -2.294 0.7908 2.869 Attributes: created_at: 2022-10-13T14:37:26.602116 arviz_version: 0.13.0.dev0 inference_library: pymc inference_library_version: 4.2.2
-
<xarray.Dataset> Dimensions: (chain: 1, draw: 500, school: 8) Coordinates: * chain (chain) int64 0 * draw (draw) int64 0 1 2 3 4 5 6 7 8 ... 492 493 494 495 496 497 498 499 * school (school) object 'Choate' 'Deerfield' ... "St. Paul's" 'Mt. Hermon' Data variables: obs (chain, draw, school) float64 12.39 -10.1 -12.09 ... 3.084 6.079 Attributes: created_at: 2022-10-13T14:37:26.604969 arviz_version: 0.13.0.dev0 inference_library: pymc inference_library_version: 4.2.2
-
<xarray.Dataset> Dimensions: (school: 8) Coordinates: * school (school) object 'Choate' 'Deerfield' ... "St. Paul's" 'Mt. Hermon' Data variables: obs (school) float64 28.0 8.0 -3.0 7.0 -1.0 1.0 18.0 12.0 Attributes: created_at: 2022-10-13T14:37:26.606375 arviz_version: 0.13.0.dev0 inference_library: pymc inference_library_version: 4.2.2
-
<xarray.Dataset> Dimensions: (school: 8) Coordinates: * school (school) object 'Choate' 'Deerfield' ... "St. Paul's" 'Mt. Hermon' Data variables: scores (school) float64 28.0 8.0 -3.0 7.0 -1.0 1.0 18.0 12.0 Attributes: created_at: 2022-10-13T14:37:26.607471 arviz_version: 0.13.0.dev0 inference_library: pymc inference_library_version: 4.2.2
In order to remove the third chain:
idata_subset = idata.isel(chain=[0, 1, 3], groups="posterior_groups") idata_subset
arviz.InferenceData-
<xarray.Dataset> Dimensions: (chain: 3, draw: 500, school: 8) Coordinates: * chain (chain) int64 0 1 3 * draw (draw) int64 0 1 2 3 4 5 6 7 8 ... 492 493 494 495 496 497 498 499 * school (school) object 'Choate' 'Deerfield' ... "St. Paul's" 'Mt. Hermon' Data variables: mu (chain, draw) float64 7.872 3.385 9.1 7.304 ... 1.767 3.486 3.404 theta (chain, draw, school) float64 12.32 9.905 14.95 ... 6.762 1.295 tau (chain, draw) float64 4.726 3.909 4.844 1.857 ... 2.741 2.932 4.461 Attributes: created_at: 2022-10-13T14:37:37.315398 arviz_version: 0.13.0.dev0 inference_library: pymc inference_library_version: 4.2.2 sampling_time: 7.480114936828613 tuning_steps: 1000
-
<xarray.Dataset> Dimensions: (chain: 3, draw: 500, school: 8) Coordinates: * chain (chain) int64 0 1 3 * draw (draw) int64 0 1 2 3 4 5 6 7 8 ... 492 493 494 495 496 497 498 499 * school (school) object 'Choate' 'Deerfield' ... "St. Paul's" 'Mt. Hermon' Data variables: obs (chain, draw, school) float64 15.9 -1.73 27.99 ... 7.052 6.946 Attributes: created_at: 2022-10-13T14:37:41.460544 arviz_version: 0.13.0.dev0 inference_library: pymc inference_library_version: 4.2.2
-
<xarray.Dataset> Dimensions: (chain: 3, draw: 500, school: 8) Coordinates: * chain (chain) int64 0 1 3 * draw (draw) int64 0 1 2 3 4 5 6 7 8 ... 492 493 494 495 496 497 498 499 * school (school) object 'Choate' 'Deerfield' ... "St. Paul's" 'Mt. Hermon' Data variables: obs (chain, draw, school) float64 -4.173 -3.24 -4.321 ... -3.853 -3.986 Attributes: created_at: 2022-10-13T14:37:37.487399 arviz_version: 0.13.0.dev0 inference_library: pymc inference_library_version: 4.2.2
-
<xarray.Dataset> Dimensions: (chain: 3, draw: 500) Coordinates: * chain (chain) int64 0 1 3 * draw (draw) int64 0 1 2 3 4 5 6 ... 494 495 496 497 498 499 Data variables: (12/16) max_energy_error (chain, draw) float64 -0.645 0.1782 ... 0.7405 -0.5795 energy_error (chain, draw) float64 0.001383 0.1622 ... 0.07346 lp (chain, draw) float64 -60.33 -57.8 ... -53.5 -55.58 index_in_trajectory (chain, draw) int64 -17 -12 -6 4 6 3 ... -6 5 -5 4 3 6 acceptance_rate (chain, draw) float64 0.9942 0.9635 ... 0.7359 0.8777 diverging (chain, draw) bool False False False ... False False ... ... smallest_eigval (chain, draw) float64 nan nan nan nan ... nan nan nan step_size_bar (chain, draw) float64 0.2573 0.2573 ... 0.2685 0.2685 step_size (chain, draw) float64 0.4435 0.4435 ... 0.2938 0.2938 energy (chain, draw) float64 69.12 63.2 63.15 ... 61.2 60.12 tree_depth (chain, draw) int64 5 4 5 3 4 4 4 4 ... 4 4 4 4 3 3 3 3 perf_counter_diff (chain, draw) float64 0.005272 0.002766 ... 0.001373 Attributes: created_at: 2022-10-13T14:37:37.324929 arviz_version: 0.13.0.dev0 inference_library: pymc inference_library_version: 4.2.2 sampling_time: 7.480114936828613 tuning_steps: 1000
-
<xarray.Dataset> Dimensions: (chain: 1, draw: 500, school: 8) Coordinates: * chain (chain) int64 0 * draw (draw) int64 0 1 2 3 4 5 6 7 8 ... 492 493 494 495 496 497 498 499 * school (school) object 'Choate' 'Deerfield' ... "St. Paul's" 'Mt. Hermon' Data variables: tau (chain, draw) float64 1.941 3.388 4.208 ... 0.8353 0.06893 2.145 theta (chain, draw, school) float64 4.866 4.59 -0.7404 ... -2.031 6.045 mu (chain, draw) float64 3.903 3.915 -1.751 ... -2.294 0.7908 2.869 Attributes: created_at: 2022-10-13T14:37:26.602116 arviz_version: 0.13.0.dev0 inference_library: pymc inference_library_version: 4.2.2
-
<xarray.Dataset> Dimensions: (chain: 1, draw: 500, school: 8) Coordinates: * chain (chain) int64 0 * draw (draw) int64 0 1 2 3 4 5 6 7 8 ... 492 493 494 495 496 497 498 499 * school (school) object 'Choate' 'Deerfield' ... "St. Paul's" 'Mt. Hermon' Data variables: obs (chain, draw, school) float64 12.39 -10.1 -12.09 ... 3.084 6.079 Attributes: created_at: 2022-10-13T14:37:26.604969 arviz_version: 0.13.0.dev0 inference_library: pymc inference_library_version: 4.2.2
-
<xarray.Dataset> Dimensions: (school: 8) Coordinates: * school (school) object 'Choate' 'Deerfield' ... "St. Paul's" 'Mt. Hermon' Data variables: obs (school) float64 28.0 8.0 -3.0 7.0 -1.0 1.0 18.0 12.0 Attributes: created_at: 2022-10-13T14:37:26.606375 arviz_version: 0.13.0.dev0 inference_library: pymc inference_library_version: 4.2.2
-
<xarray.Dataset> Dimensions: (school: 8) Coordinates: * school (school) object 'Choate' 'Deerfield' ... "St. Paul's" 'Mt. Hermon' Data variables: scores (school) float64 28.0 8.0 -3.0 7.0 -1.0 1.0 18.0 12.0 Attributes: created_at: 2022-10-13T14:37:26.607471 arviz_version: 0.13.0.dev0 inference_library: pymc inference_library_version: 4.2.2
You can expand the groups and coords in each group to see how now only the chains 0, 1 and 3 are present.