class_docstr: Main interface for accessing values from MCMC results.
  
  The core method to select values is `get_values`. The method
  to select sampler statistics is `get_sampler_stats`. Both kinds of
  values can also be accessed by indexing the MultiTrace object.
  Indexing can behave in four ways:
  
  1. Indexing with a variable or variable name (str) returns all
     values for that variable, combining values for all chains.
  
     >>> trace[varname]
  
     Slicing after the variable name can be used to burn and thin
     the samples.
  
     >>> trace[varname, 1000:]
  
     For convenience during interactive use, values can also be
     accessed using the variable as an attribute.
  
     >>> trace.varname
  
  2. Indexing with an integer returns a dictionary with values for
     each variable at the given index (corresponding to a single
     sampling iteration).
  
  3. Slicing with a range returns a new trace with the number of draws
     corresponding to the range.
  
  4. Indexing with the name of a sampler statistic that is not also
     the name of a variable returns those values from all chains.
     If there is more than one sampler that provides that statistic,
     the values are concatenated along a new axis.
  
  For any methods that require a single trace (e.g., taking the length
  of the MultiTrace instance, which returns the number of draws), the
  trace with the highest chain number is always used.
  
  Attributes
  ----------
  nchains: int
      Number of chains in the `MultiTrace`.
  chains: `List[int]`
      List of chain indices
  report: str
      Report on the sampling process.
  varnames: `List[str]`
      List of variable names in the trace(s)
class_docstr_tok: ["Main","interface","for","accessing","values","from","MCMC","results",".","The","core","method","to","select","values","is","`","get_values","`",".","The","method","to","select","sampler","statistics","is","`","get_sampler_stats","`",".","Both","kinds","of","values","can","also","be","accessed","by","indexing","the","MultiTrace","object",".","Indexing","can","behave","in","four","ways",":","1",".","Indexing","with","a","variable","or","variable","name","(","str",")","returns","all","values","for","that","variable",",","combining","values","for","all","chains",".",">",">",">","trace","[","varname","]","Slicing","after","the","variable","name","can","be","used","to","burn","and","thin","the","samples",".",">",">",">","trace","[","varname",",","1000",":","]","For","convenience","during","interactive","use",",","values","can","also","be","accessed","using","the","variable","as","an","attribute",".",">",">",">","trace.varname","2",".","Indexing","with","an","integer","returns","a","dictionary","with","values","for","each","variable","at","the","given","index","(","corresponding","to","a","single","sampling","iteration",")",".","3",".","Slicing","with","a","range","returns","a","new","trace","with","the","number","of","draws","corresponding","to","the","range",".","4",".","Indexing","with","the","name","of","a","sampler","statistic","that","is","not","also","the","name","of","a","variable","returns","those","values","from","all","chains",".","If","there","is","more","than","one","sampler","that","provides","that","statistic",",","the","values","are","concatenated","along","a","new","axis",".","For","any","methods","that","require","a","single","trace","(","e.g.",",","taking","the","length","of","the","MultiTrace","instance",",","which","returns","the","number","of","draws",")",",","the","trace","with","the","highest","chain","number","is","always","used",".","Attributes","--","--","--","--","--","nchains",":","int","Number","of","chains","in","the","`","MultiTrace","`",".","chains",":","`","List","[","int","]","`","List","of","chain","indices","report",":","str","Report","on","the","sampling","process",".","varnames",":","`","List","[","str","]","`","List","of","variable","names","in","the","trace","(","s",")"]
docstr: Get values from traces.
  
  Parameters
  ----------
  varname: str
  burn: int
  thin: int
  combine: bool
      If True, results from `chains` will be concatenated.
  chains: int or list of ints
      Chains to retrieve. If None, all chains are used. A single
      chain value can also be given.
  squeeze: bool
      Return a single array element if the resulting list of
      values only has one element. If False, the result will
      always be a list of arrays, even if `combine` is True.
  
  Returns
  -------
  A list of NumPy arrays or a single NumPy array (depending on
  `squeeze`).
docstr_tok: ["Get","values","from","traces",".","Parameters","--","--","--","--","--","varname",":","str","burn",":","int","thin",":","int","combine",":","bool","If","True",",","results","from","`","chains","`","will","be","concatenated",".","chains",":","int","or","list","of","ints","Chains","to","retrieve",".","If","None",",","all","chains","are","used",".","A","single","chain","value","can","also","be","given",".","squeeze",":","bool","Return","a","single","array","element","if","the","resulting","list","of","values","only","has","one","element",".","If","False",",","the","result","will","always","be","a","list","of","arrays",",","even","if","`","combine","`","is","True",".","Returns","--","--","--","-","A","list","of","NumPy","arrays","or","a","single","NumPy","array","(","depending","on","`","squeeze","`",")","."]
code: def get_values(
      self,
      varname: str,
      burn: int = 0,
      thin: int = 1,
      combine: bool = True,
      chains: Optional[Union[int, Sequence[int]]] = None,
      squeeze: bool = True,
  ) -> List[np.ndarray]:
      """Get values from traces.
  
      Parameters
      ----------
      varname: str
      burn: int
      thin: int
      combine: bool
          If True, results from `chains` will be concatenated.
      chains: int or list of ints
          Chains to retrieve. If None, all chains are used. A single
          chain value can also be given.
      squeeze: bool
          Return a single array element if the resulting list of
          values only has one element. If False, the result will
          always be a list of arrays, even if `combine` is True.
  
      Returns
      -------
      A list of NumPy arrays or a single NumPy array (depending on
      `squeeze`).
      """
      if chains is None:
          chains = self.chains
      varname = get_var_name(varname)
      if isinstance(chains, int):
          chains = [chains]
      results = [
          self._straces[chain].get_values(varname, burn, thin)
          for chain in chains
      ]
      return _squeeze_cat(results, combine, squeeze)
  
imports: import itertools
  import logging
  import warnings
  from abc import ABC
  from typing import Any, Dict, List, Mapping, Optional, Sequence, Set, Sized, Tuple, TypeVar, Union, cast
  import numpy
  from pymc.backends.report import SamplerReport
  from pymc.model import modelcontext
  from pymc.util import get_var_name
label_desc: Use image node_id 12 for calling the MultiTrace obj's underlying member method code with example usage: obj.get_values(varname, burn, thin, combine, chains, squeeze) and returns: _squeeze_cat