class_docstr: A basic class for Principal Component Analysis (PCA).
  
  p is the number of dimensions, while N is the number of data points
docstr: p X N matrix input
docstr_tok: ["p","X","N","matrix","input"]
code: def __init__(self, data, names=None):
      """
      p X N matrix input
      """
      A = np.array(data).T
      n, p = A.shape
      self.n, self.p = n, p
      if p > n:
          from warnings import warn
  
          warn("p > n - intentional?", RuntimeWarning)
      self.A = A
      self._origA = A.copy()
  
      self.__calc()
  
      self._colors = np.tile(
          self._colors, int((p - 1) / len(self._colors)) + 1
      )[:p]
      if names is not None and len(names) != p:
          raise ValueError("names must match data dimension")
      self.names = (
          None if names is None else tuple([str(x) for x in names])
      )
  
file_path: statsmodels/statsmodels/sandbox/pca.py
imports: import numpy
label_desc: Use image node_id 2 to create a new Pca object  with example: obj = Pca(data, names)