class_docstr: This is the basic one dimensional Gaussian-Gamma Mixture estimation class
  Note that it can work with positive or negative values,
  as long as there is at least one positive value.
  NB : The gamma distribution is defined only on positive values.
  
  5 scalar members
  - mean: gaussian mean
  - var: gaussian variance (non-negative)
  - shape: gamma shape (non-negative)
  - scale: gamma scale (non-negative)
  - mixt: mixture parameter (non-negative, weight of the gamma)
class_docstr_tok: ["This","is","the","basic","one","dimensional","Gaussian-Gamma","Mixture","estimation","class","Note","that","it","can","work","with","positive","or","negative","values",",","as","long","as","there","is","at","least","one","positive","value",".","NB",":","The","gamma","distribution","is","defined","only","on","positive","values",".","5","scalar","members","-","mean",":","gaussian","mean","-","var",":","gaussian","variance","(","non-negative",")","-","shape",":","gamma","shape","(","non-negative",")","-","scale",":","gamma","scale","(","non-negative",")","-","mixt",":","mixture","parameter","(","non-negative",",","weight","of","the","gamma",")"]
docstr: E step of the estimation:
  Estimation of ata membsership
  
  Parameters
  ----------
  x: array of shape (nbitems,)
      input data
  
  Returns
  -------
  z: array of shape (nbitems, 2)
      the membership matrix
docstr_tok: ["E","step","of","the","estimation",":","Estimation","of","ata","membsership","Parameters","--","--","--","--","--","x",":","array","of","shape","(","nbitems",",",")","input","data","Returns","--","--","--","-","z",":","array","of","shape","(","nbitems",",","2",")","the","membership","matrix"]
code: def Estep(self, x):
      """
      E step of the estimation:
      Estimation of ata membsership
  
      Parameters
      ----------
      x: array of shape (nbitems,)
          input data
  
      Returns
      -------
      z: array of shape (nbitems, 2)
          the membership matrix
      """
      eps = 1.0e-15
      z = np.zeros((np.size(x), 2), "d")
      z[:, 0] = _gam_dens(self.shape, self.scale, x)
      z[:, 1] = _gaus_dens(self.mean, self.var, x)
      z = z * np.array([self.mixt, 1.0 - self.mixt])
      sz = np.maximum(np.sum(z, 1), eps)
      L = np.sum(np.log(sz)) / np.size(x)
      z = (z.T / sz).T
      return z, L
  
imports: import numpy
  import scipy.special
  import scipy.stats
label_desc: Use image node_id 4 for calling the GGM obj's underlying member method code with example usage: obj.Estep(x) and returns: z,  L