class_docstr: Latent Variables Class
  
  Holds latent variable objects and contains method for latent variable manipulation. Latent variables are 
  referred to as z as shorthand. This is convention in much of the literature.
code: def __str__(self):
      z_row = []
      z_names = self.get_z_names()
      priors = self.get_z_priors()
      prior_names, prior_z_names = self.get_z_priors_names()
      vardist_names = self.get_z_approx_dist_names()
      transforms = self.get_z_transforms_names()
  
      fmt = [
          ("Index", "z_index", 8),
          ("Latent Variable", "z_name", 25),
          ("Prior", "z_prior", 15),
          ("Prior Hyperparameters", "z_hyper", 25),
          ("V.I. Dist", "z_vardist", 10),
          ("Transform", "z_transform", 10),
      ]
  
      for z in range(len(self.z_list)):
          z_row.append(
              {
                  "z_index": z,
                  "z_name": z_names[z],
                  "z_prior": prior_names[z],
                  "z_hyper": prior_z_names[z],
                  "z_vardist": vardist_names[z],
                  "z_transform": transforms[z],
              }
          )
      return TablePrinter(fmt, ul="=")(z_row)
  
imports: import numpy
  import pandas
  from .covariances import acf
  from .output import TablePrinter
  from .inference import *
  from .families import Normal, t, TruncatedNormal, Cauchy, Skewt, InverseGamma, Flat, InverseWishart, Laplace
label_desc: Use image node_id 2 for calling the LatentVariables obj's underlying member method code with example usage: obj.__str__() and returns: TablePrinter