# Trace.get\_values in PyMC version 4.1.3

**URL:** https://discourse.pymc.io/t/trace-get-values-in-pymc-version-4-1-3/9998
**Category:** v5
**Created:** [July 24, 2022, 5:34am UTC](https://discourse.pymc.io/t/trace-get-values-in-pymc-version-4-1-3/9998 "2022-07-24T05:34:04Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![Amita](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.pymc.io/amita/32/4738_2.png) [@Amita](https://discourse.pymc.io/u/Amita)
#### Post date: [July 24, 2022, 5:34am UTC](https://discourse.pymc.io/t/trace-get-values-in-pymc-version-4-1-3/9998/1 "2022-07-24T05:34:04Z")

</div>

Hi!  
How do I modify trace.get\_values(var) in PyMC4? I am running a code which worked in PyMC3 but  
I am getting this error in PyMC4:

```auto
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
Input In [59], in <cell line: 2>()
      2 for var in ['A', 'beta', 't0', 'gamma', 'trise', 'tfall', 'c', 'white_noise']:
      3 plt.figure(figsize=(10,4))
----> 4 vals = idata.get_values(var)
      5 if var != 'p0':
      6 mean, lower, upper = round(vals.mean(), 2), round(vals.mean()-vals.std(), 2), round(vals.mean()+vals.std(),2)

AttributeError: 'InferenceData' object has no attribute 'get_values'

```

---

<div class="post-metadata">

### Author: ![DanWeitzenfeld](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.pymc.io/danweitzenfeld/32/30_2.png) [@DanWeitzenfeld](https://discourse.pymc.io/u/DanWeitzenfeld)
#### Post date: [July 24, 2022, 1:56pm UTC](https://discourse.pymc.io/t/trace-get-values-in-pymc-version-4-1-3/9998/2 "2022-07-24T13:56:16Z")

</div>

You can read more about the InferenceData object [here](https://arviz-devs.github.io/arviz/schema/schema.html).

But to answer your question directly, what I do most often to replicate `get_values` is:

```auto
posterior = idata.posterior.stack(sample=['chain', 'draw'])
vals = posterior[var]

```

---

<div class="post-metadata">

### Author: ![OriolAbril](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.pymc.io/oriolabril/32/2497_2.png) [@OriolAbril](https://discourse.pymc.io/u/OriolAbril)
#### Post date: [July 24, 2022, 6:45pm UTC](https://discourse.pymc.io/t/trace-get-values-in-pymc-version-4-1-3/9998/3 "2022-07-24T18:45:04Z")

</div>

Also, already in the development version (will be available with ArviZ 0.13) you can also use:

```auto
posterior = az.extract(idata)

```

which defaults to this behaviour but it is also possible to request a random subset of the samples (for plotting without crowding the figure too much for example). There are also other examples of working with InferenceData in [Working with InferenceData — ArviZ dev documentation](https://python.arviz.org/en/latest/getting_started/WorkingWithInferenceData.html). The schema doc linked above is more descriptive, depending on what you are searching for you should read one or the other. As first contact ever with InferenceData however, I’d recommend the “working with inferencedata” page or this other one: [Introduction to xarray, InferenceData, and netCDF for ArviZ — ArviZ dev documentation](https://python.arviz.org/en/latest/getting_started/XarrayforArviZ.html)
