code: def raw_samples_to_dict(sampler, raw_samples):
      
      sampling_params = sampler.sampling_params
      # convert to dictionary
      samples = {param: raw_samples[..., ii] for
                 ii, param in enumerate(sampling_params)}
      # apply boundary conditions
      samples = sampler.model.prior_distribution.apply_boundary_conditions(
          **samples)
      # apply transforms to go to model's variable params space
      if sampler.model.sampling_transforms is not None:
          samples = sampler.model.sampling_transforms.apply(
              samples, inverse=True)
      return samples
docs: Convenience function for converting ND array to a dict of samples.
  
      The samples are assumed to have dimension
      ``[sampler.base_shape x] niterations x len(sampler.sampling_params)``.
  
      Parameters
      ----------
      sampler : sampler instance
          An instance of an MCMC sampler.
      raw_samples : array
          The array of samples to convert.
  
      Returns
      -------
      dict :
          A dictionary mapping the raw samples to the variable params. If the
          sampling params are not the same as the variable params, they will
          also be included. Each array will have shape
          ``[sampler.base_shape x] niterations``.