class_docstr: Handmade PCA to bypass sklearn dependency.
  
  Attributes:
      n_components:
          Number of principal components to keep.
      eps:
          Epsilon for numerical stability.
code: def __init__(self, n_components: int = 2, eps: float = 1e-10):
      self.n_components = n_components
      self.mean: Optional[NDArray[np.float32]] = None
      self.w: Optional[NDArray[np.float32]] = None
      self.eps = eps
  
file_path: lightly/lightly/utils/embeddings_2d.py
imports: from __future__ import annotations
  from typing import Optional, Tuple
  import numpy
  from numpy.typing import NDArray
label_desc: Use image node_id 1 to create a new PCA object from inherited base classes: object with example: obj = PCA(n_components, eps)