code: def fit_transform(self, X, y=None):
          
          self.fit(X, y)
          return self.embedding_
docs: Fit X into an embedded space and return that transformed
          output.
  
          Parameters
          ----------
          X : array, shape (n_samples, n_features) or (n_samples, n_samples)
              If the metric is 'precomputed' X must be a square distance
              matrix. Otherwise it contains a sample per row.
  
          y : array, shape (n_samples)
              A target array for supervised dimension reduction. How this is
              handled is determined by parameters UMAP was instantiated with.
              The relevant attributes are ``target_metric`` and
              ``target_metric_kwds``.
  
          Returns
          -------
          X_new : array, shape (n_samples, n_components)
              Embedding of the training data in low-dimensional space.