class_docstr: Represents any parametric distribution that can be modeled by scipy.
docstr: Helper function to obtain a mapping from parameter name to parameter value. Depending whether the
  distribution is discrete or continuous, there are slightly different parameter names. The given parameters are
  assumed to follow the order as provided by the scipy fit function.
  
  :param scipy_distribution: The scipy distribution.
  :param parameters: The values of the corresponding parameters of the distribution. Here, it is expected to
                     follow the same order as defined by the scipy fit function.
  :return: A dictionary that maps a parameter name to its value.
docstr_tok: ["Helper","function","to","obtain","a","mapping","from","parameter","name","to","parameter","value",".","Depending","whether","the","distribution","is","discrete","or","continuous",",","there","are","slightly","different","parameter","names",".","The","given","parameters","are","assumed","to","follow","the","order","as","provided","by","the","scipy","fit","function",".",":","param","scipy_distribution",":","The","scipy","distribution",".",":","param","parameters",":","The","values","of","the","corresponding","parameters","of","the","distribution",".","Here",",","it","is","expected","to","follow","the","same","order","as","defined","by","the","scipy","fit","function",".",":","return",":","A","dictionary","that","maps","a","parameter","name","to","its","value","."]
code: def map_scipy_distribution_parameters_to_names(
      scipy_distribution: Union[rv_continuous, rv_discrete],
      parameters: Tuple[float],
  ) -> Dict[str, float]:
      """Helper function to obtain a mapping from parameter name to parameter value. Depending whether the
      distribution is discrete or continuous, there are slightly different parameter names. The given parameters are
      assumed to follow the order as provided by the scipy fit function.
  
      :param scipy_distribution: The scipy distribution.
      :param parameters: The values of the corresponding parameters of the distribution. Here, it is expected to
                         follow the same order as defined by the scipy fit function.
      :return: A dictionary that maps a parameter name to its value.
      """
      if scipy_distribution.shapes:
          parameter_list = [
              name.strip()
              for name in scipy_distribution.shapes.split(",")
          ]
      else:
          parameter_list = []
      if scipy_distribution.name in _DISCRETE_DISTRIBUTIONS:
          parameter_list += ["loc"]
      elif scipy_distribution.name in _CONTINUOUS_DISTRIBUTIONS:
          parameter_list += ["loc", "scale"]
      else:
          raise ValueError(
              "Distribution %s not found in the list of continuous and discrete distributions!"
              % scipy_distribution.name
          )
  
      parameters_dictionary = {}
      for i, parameter_name in enumerate(parameter_list):
          parameters_dictionary[parameter_name] = parameters[i]
  
      return parameters_dictionary
  
imports: import warnings
  from typing import Dict, Optional, Tuple, Union
  import numpy
  import scipy
  from scipy.stats import norm, rv_continuous, rv_discrete
  from sklearn.cluster import KMeans
  from sklearn.metrics import silhouette_score
  from sklearn.mixture import BayesianGaussianMixture
  from dowhy.gcm.causal_mechanisms import StochasticModel
  from dowhy.gcm.util.general import shape_into_2d
label_desc: Use image node_id 8 for calling the ScipyDistribution obj's underlying member method code with example usage: obj.map_scipy_distribution_parameters_to_names(scipy_distribution, parameters) and returns: parameters_dictionary