class_docstr: A Posterior represented by a list of independent Posteriors.
  
  When at least one of the posteriors is a `GaussianMixturePosterior`, the other
  posteriors are expanded to match the size of the `GaussianMixturePosterior`.
class_docstr_tok: ["A","Posterior","represented","by","a","list","of","independent","Posteriors",".","When","at","least","one","of","the","posteriors","is","a","`","GaussianMixturePosterior","`",",","the","other","posteriors","are","expanded","to","match","the","size","of","the","`","GaussianMixturePosterior","`","."]
docstr: A Posterior represented by a list of independent Posteriors.
  
  Args:
      *posteriors: A variable number of single-outcome posteriors.
  
  Example:
      >>> p_1 = model_1.posterior(test_X)
      >>> p_2 = model_2.posterior(test_X)
      >>> p_12 = PosteriorList(p_1, p_2)
  
  Note: This is typically produced automatically in `ModelList`; it should
  generally not be necessary for the end user to invoke it manually.
docstr_tok: ["A","Posterior","represented","by","a","list","of","independent","Posteriors",".","Args",":","*","posteriors",":","A","variable","number","of","single-outcome","posteriors",".","Example",":",">",">",">","p_1","=","model_1.posterior","(","test_X",")",">",">",">","p_2","=","model_2.posterior","(","test_X",")",">",">",">","p_12","=","PosteriorList","(","p_1",",","p_2",")","Note",":","This","is","typically","produced","automatically","in","`","ModelList","`",";","it","should","generally","not","be","necessary","for","the","end","user","to","invoke","it","manually","."]
code: def __init__(self, *posteriors: Posterior) -> None:
      r"""A Posterior represented by a list of independent Posteriors.
  
      Args:
          *posteriors: A variable number of single-outcome posteriors.
  
      Example:
          >>> p_1 = model_1.posterior(test_X)
          >>> p_2 = model_2.posterior(test_X)
          >>> p_12 = PosteriorList(p_1, p_2)
  
      Note: This is typically produced automatically in `ModelList`; it should
      generally not be necessary for the end user to invoke it manually.
      """
      self.posteriors = list(posteriors)
  
imports: from __future__ import annotations
  from functools import cached_property
  from typing import Any, List, Optional
  import torch
  from botorch.posteriors.fully_bayesian import GaussianMixturePosterior, MCMC_DIM
  from botorch.posteriors.posterior import Posterior
  from torch import Tensor
label_desc: Use image node_id 1 to create a new PosteriorList object from inherited base classes: Posterior with example: obj = PosteriorList()