<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def transform(self, data=None):
 """ Return transformed data, or transform new data using the same model parameters Parameters data : numpy array, pandas dataframe or list of arrays/dfs The data to transform. If no data is passed, the xform_data from the DataGeometry object will be returned. Returns xformed_data : list of numpy arrays The transformed data """

        # if no new data passed,
        if data is None:
            return self.xform_data
        else:
            formatted = format_data(
                data,
                semantic=self.semantic,
                vectorizer=self.vectorizer,
                corpus=self.corpus,
                ppca=True)
            norm = normalizer(formatted, normalize=self.normalize)
            reduction = reducer(
                norm,
                reduce=self.reduce,
                ndims=self.reduce['params']['n_components'])
            return aligner(reduction, align=self.align)