def transform(self, X):
    'Apply dimensionality reduction to X.\n\n        X is projected on the first principal components previously extracted\n        from a training set.\n\n        Parameters\n        ----------\n        X : array-like of shape (n_samples, n_features)\n            New data, where `n_samples` is the number of samples\n            and `n_features` is the number of features.\n\n        Returns\n        -------\n        X_new : array-like of shape (n_samples, n_components)\n            Projection of X in the first principal components, where `n_samples`\n            is the number of samples and `n_components` is the number of the components.\n        '
    check_is_fitted(self)
    X = self._validate_data(X, dtype=[np.float64, np.float32], reset=False)
    if (self.mean_ is not None):
        X = (X - self.mean_)
    X_transformed = np.dot(X, self.components_.T)
    if self.whiten:
        X_transformed /= np.sqrt(self.explained_variance_)
    return X_transformed
Apply dimensionality reduction to X.

X is projected on the first principal components previously extracted
from a training set.

Parameters
----------
X : array-like of shape (n_samples, n_features)
    New data, where `n_samples` is the number of samples
    and `n_features` is the number of features.

Returns
-------
X_new : array-like of shape (n_samples, n_components)
    Projection of X in the first principal components, where `n_samples`
    is the number of samples and `n_components` is the number of the components.
def transform(self, X):
    'Apply dimensionality reduction to X.\n\n        X is projected on the first principal components previously extracted\n        from a training set.\n\n        Parameters\n        ----------\n        X : array-like of shape (n_samples, n_features)\n            New data, where `n_samples` is the number of samples\n            and `n_features` is the number of features.\n\n        Returns\n        -------\n        X_new : array-like of shape (n_samples, n_components)\n            Projection of X in the first principal components, where `n_samples`\n            is the number of samples and `n_components` is the number of the components.\n        '
    check_is_fitted(self)
    X = self._validate_data(X, dtype=[np.float64, np.float32], reset=False)
    if (self.mean_ is not None):
        X = (X - self.mean_)
    X_transformed = np.dot(X, self.components_.T)
    if self.whiten:
        X_transformed /= np.sqrt(self.explained_variance_)
    return X_transformed