arviz.InferenceData.isel#
- InferenceData.isel(groups=None, filter_groups=None, inplace=False, **kwargs)[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:
- groups
str
orlist
ofstr
, 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.- kwargs
dict
, optional It must be accepted by
xarray.Dataset.isel()
.
- groups
- 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> Size: 165kB Dimensions: (chain: 4, draw: 500, school: 8) Coordinates: * chain (chain) int64 32B 0 1 2 3 * draw (draw) int64 4kB 0 1 2 3 4 5 6 7 ... 493 494 495 496 497 498 499 * school (school) <U16 512B 'Choate' 'Deerfield' ... 'Mt. Hermon' Data variables: mu (chain, draw) float64 16kB ... theta (chain, draw, school) float64 128kB ... tau (chain, draw) float64 16kB ... 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> Size: 133kB Dimensions: (chain: 4, draw: 500, school: 8) Coordinates: * chain (chain) int64 32B 0 1 2 3 * draw (draw) int64 4kB 0 1 2 3 4 5 6 7 ... 493 494 495 496 497 498 499 * school (school) <U16 512B 'Choate' 'Deerfield' ... 'Mt. Hermon' Data variables: obs (chain, draw, school) float64 128kB ... Attributes: arviz_version: 0.13.0.dev0 created_at: 2022-10-13T14:37:41.460544 inference_library: pymc inference_library_version: 4.2.2
-
<xarray.Dataset> Size: 133kB Dimensions: (chain: 4, draw: 500, school: 8) Coordinates: * chain (chain) int64 32B 0 1 2 3 * draw (draw) int64 4kB 0 1 2 3 4 5 6 7 ... 493 494 495 496 497 498 499 * school (school) <U16 512B 'Choate' 'Deerfield' ... 'Mt. Hermon' Data variables: obs (chain, draw, school) float64 128kB ... Attributes: arviz_version: 0.13.0.dev0 created_at: 2022-10-13T14:37:37.487399 inference_library: pymc inference_library_version: 4.2.2
-
<xarray.Dataset> Size: 246kB Dimensions: (chain: 4, draw: 500) Coordinates: * chain (chain) int64 32B 0 1 2 3 * draw (draw) int64 4kB 0 1 2 3 4 5 ... 495 496 497 498 499 Data variables: (12/16) max_energy_error (chain, draw) float64 16kB ... energy_error (chain, draw) float64 16kB ... lp (chain, draw) float64 16kB ... index_in_trajectory (chain, draw) int64 16kB ... acceptance_rate (chain, draw) float64 16kB ... diverging (chain, draw) bool 2kB ... ... ... smallest_eigval (chain, draw) float64 16kB ... step_size_bar (chain, draw) float64 16kB ... step_size (chain, draw) float64 16kB ... energy (chain, draw) float64 16kB ... tree_depth (chain, draw) int64 16kB ... perf_counter_diff (chain, draw) float64 16kB ... Attributes: arviz_version: 0.13.0.dev0 created_at: 2022-10-13T14:37:37.324929 inference_library: pymc inference_library_version: 4.2.2 sampling_time: 7.480114936828613 tuning_steps: 1000
-
<xarray.Dataset> Size: 45kB Dimensions: (chain: 1, draw: 500, school: 8) Coordinates: * chain (chain) int64 8B 0 * draw (draw) int64 4kB 0 1 2 3 4 5 6 7 ... 493 494 495 496 497 498 499 * school (school) <U16 512B 'Choate' 'Deerfield' ... 'Mt. Hermon' Data variables: tau (chain, draw) float64 4kB ... theta (chain, draw, school) float64 32kB ... mu (chain, draw) float64 4kB ... Attributes: arviz_version: 0.13.0.dev0 created_at: 2022-10-13T14:37:26.602116 inference_library: pymc inference_library_version: 4.2.2
-
<xarray.Dataset> Size: 37kB Dimensions: (chain: 1, draw: 500, school: 8) Coordinates: * chain (chain) int64 8B 0 * draw (draw) int64 4kB 0 1 2 3 4 5 6 7 ... 493 494 495 496 497 498 499 * school (school) <U16 512B 'Choate' 'Deerfield' ... 'Mt. Hermon' Data variables: obs (chain, draw, school) float64 32kB ... Attributes: arviz_version: 0.13.0.dev0 created_at: 2022-10-13T14:37:26.604969 inference_library: pymc inference_library_version: 4.2.2
-
<xarray.Dataset> Size: 576B Dimensions: (school: 8) Coordinates: * school (school) <U16 512B 'Choate' 'Deerfield' ... 'Mt. Hermon' Data variables: obs (school) float64 64B ... Attributes: arviz_version: 0.13.0.dev0 created_at: 2022-10-13T14:37:26.606375 inference_library: pymc inference_library_version: 4.2.2
-
<xarray.Dataset> Size: 576B Dimensions: (school: 8) Coordinates: * school (school) <U16 512B 'Choate' 'Deerfield' ... 'Mt. Hermon' Data variables: scores (school) float64 64B ... Attributes: arviz_version: 0.13.0.dev0 created_at: 2022-10-13T14:37:26.607471 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> Size: 125kB Dimensions: (chain: 3, draw: 500, school: 8) Coordinates: * chain (chain) int64 24B 0 1 3 * draw (draw) int64 4kB 0 1 2 3 4 5 6 7 ... 493 494 495 496 497 498 499 * school (school) <U16 512B 'Choate' 'Deerfield' ... 'Mt. Hermon' Data variables: mu (chain, draw) float64 12kB ... theta (chain, draw, school) float64 96kB ... tau (chain, draw) float64 12kB ... 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> Size: 101kB Dimensions: (chain: 3, draw: 500, school: 8) Coordinates: * chain (chain) int64 24B 0 1 3 * draw (draw) int64 4kB 0 1 2 3 4 5 6 7 ... 493 494 495 496 497 498 499 * school (school) <U16 512B 'Choate' 'Deerfield' ... 'Mt. Hermon' Data variables: obs (chain, draw, school) float64 96kB ... Attributes: arviz_version: 0.13.0.dev0 created_at: 2022-10-13T14:37:41.460544 inference_library: pymc inference_library_version: 4.2.2
-
<xarray.Dataset> Size: 101kB Dimensions: (chain: 3, draw: 500, school: 8) Coordinates: * chain (chain) int64 24B 0 1 3 * draw (draw) int64 4kB 0 1 2 3 4 5 6 7 ... 493 494 495 496 497 498 499 * school (school) <U16 512B 'Choate' 'Deerfield' ... 'Mt. Hermon' Data variables: obs (chain, draw, school) float64 96kB ... Attributes: arviz_version: 0.13.0.dev0 created_at: 2022-10-13T14:37:37.487399 inference_library: pymc inference_library_version: 4.2.2
-
<xarray.Dataset> Size: 186kB Dimensions: (chain: 3, draw: 500) Coordinates: * chain (chain) int64 24B 0 1 3 * draw (draw) int64 4kB 0 1 2 3 4 5 ... 495 496 497 498 499 Data variables: (12/16) max_energy_error (chain, draw) float64 12kB ... energy_error (chain, draw) float64 12kB ... lp (chain, draw) float64 12kB ... index_in_trajectory (chain, draw) int64 12kB ... acceptance_rate (chain, draw) float64 12kB ... diverging (chain, draw) bool 2kB ... ... ... smallest_eigval (chain, draw) float64 12kB ... step_size_bar (chain, draw) float64 12kB ... step_size (chain, draw) float64 12kB ... energy (chain, draw) float64 12kB ... tree_depth (chain, draw) int64 12kB ... perf_counter_diff (chain, draw) float64 12kB ... Attributes: arviz_version: 0.13.0.dev0 created_at: 2022-10-13T14:37:37.324929 inference_library: pymc inference_library_version: 4.2.2 sampling_time: 7.480114936828613 tuning_steps: 1000
-
<xarray.Dataset> Size: 45kB Dimensions: (chain: 1, draw: 500, school: 8) Coordinates: * chain (chain) int64 8B 0 * draw (draw) int64 4kB 0 1 2 3 4 5 6 7 ... 493 494 495 496 497 498 499 * school (school) <U16 512B 'Choate' 'Deerfield' ... 'Mt. Hermon' Data variables: tau (chain, draw) float64 4kB ... theta (chain, draw, school) float64 32kB ... mu (chain, draw) float64 4kB ... Attributes: arviz_version: 0.13.0.dev0 created_at: 2022-10-13T14:37:26.602116 inference_library: pymc inference_library_version: 4.2.2
-
<xarray.Dataset> Size: 37kB Dimensions: (chain: 1, draw: 500, school: 8) Coordinates: * chain (chain) int64 8B 0 * draw (draw) int64 4kB 0 1 2 3 4 5 6 7 ... 493 494 495 496 497 498 499 * school (school) <U16 512B 'Choate' 'Deerfield' ... 'Mt. Hermon' Data variables: obs (chain, draw, school) float64 32kB ... Attributes: arviz_version: 0.13.0.dev0 created_at: 2022-10-13T14:37:26.604969 inference_library: pymc inference_library_version: 4.2.2
-
<xarray.Dataset> Size: 576B Dimensions: (school: 8) Coordinates: * school (school) <U16 512B 'Choate' 'Deerfield' ... 'Mt. Hermon' Data variables: obs (school) float64 64B ... Attributes: arviz_version: 0.13.0.dev0 created_at: 2022-10-13T14:37:26.606375 inference_library: pymc inference_library_version: 4.2.2
-
<xarray.Dataset> Size: 576B Dimensions: (school: 8) Coordinates: * school (school) <U16 512B 'Choate' 'Deerfield' ... 'Mt. Hermon' Data variables: scores (school) float64 64B ... Attributes: arviz_version: 0.13.0.dev0 created_at: 2022-10-13T14:37:26.607471 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.