class_docstr: Simple class to work with 1D mixtures of Gaussians
  
  Parameters
  ----------
  means : array_like
      means of component distributions (default = 0)
  sigmas : array_like
      standard deviations of component distributions (default = 1)
  weights : array_like
      weight of component distributions (default = 1)
class_docstr_tok: ["Simple","class","to","work","with","1D","mixtures","of","Gaussians","Parameters","--","--","--","--","--","means",":","array_like","means","of","component","distributions","(","default","=","0",")","sigmas",":","array_like","standard","deviations","of","component","distributions","(","default","=","1",")","weights",":","array_like","weight","of","component","distributions","(","default","=","1",")"]
code: def __init__(self, means=0, sigmas=1, weights=1):
      data = np.array([t for t in np.broadcast(means, sigmas, weights)])
  
      components = data.shape[0]
      self._gmm = GaussianMixture(
          components, covariance_type="spherical"
      )
  
      self._gmm.means_ = data[:, :1]
      self._gmm.weights_ = data[:, 2] / data[:, 2].sum()
      self._gmm.covariances_ = data[:, 1] ** 2
  
      self._gmm.precisions_cholesky_ = 1 / np.sqrt(
          self._gmm.covariances_
      )
  
      self._gmm.fit = None
  
imports: import numpy
  from sklearn.mixture import GaussianMixture
label_desc: Use image node_id 1 to create a new GaussianMixture1D object  with example: obj = GaussianMixture1D(means, sigmas, weights)