code: def _transform_array(self, X):
          r
          X_meanfree = X - self.mean
          Y = np.dot(X_meanfree, self.eigenvectors[:, 0:self.dimension()])
  
          return Y.astype(self.output_type())
docs: r"""Projects the data onto the dominant independent components.
  
          Parameters
          ----------
          X : ndarray(n, m)
              the input data
  
          Returns
          -------
          Y : ndarray(n,)
              the projected data