#NEWLINE# def transform( self , X , y = None , copy = True ) : #NEWLINE# #INDENT# 'Recover the sources from X (apply the unmixing matrix).\n\n        Parameters\n        ----------\n        X : array-like, shape (n_samples, n_features)\n            Data to transform, where n_samples is the number of samples\n            and n_features is the number of features.\n\n        copy : bool (optional)\n            If False, data passed to fit are overwritten. Defaults to True.\n\n        Returns\n        -------\n        X_new : array-like, shape (n_samples, n_components)\n        ' #NEWLINE# check_is_fitted ( self , 'mixing_' ) #NEWLINE# X = check_array ( X , copy = copy , dtype = FLOAT_DTYPES ) #NEWLINE# if self . whiten : #NEWLINE# #INDENT# X -= self . mean_ #NEWLINE# #UNINDENT# return fast_dot ( X , self . components_ . T )