class_docstr: Represents any parametric distribution that can be modeled by scipy.
code: def draw_samples(self, num_samples: int) -> np.ndarray:
      if len(self._parameters) == 0 or self._distribution is None:
          raise ValueError(
              "Cannot draw samples. Model has not been fit!"
          )
  
      return shape_into_2d(
          self._distribution.rvs(size=num_samples, **self.parameters)
      )
  
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 2 for calling the ScipyDistribution obj's underlying member method code with example usage: obj.draw_samples(num_samples) and returns: shape_into_2d