def transform(self, X):
        """Transform each time series into a MTF image.

        Parameters
        ----------
        X : array-like, shape = (n_samples, n_timestamps)
            Input data

        Returns
        -------
        X_new : array-like, shape = (n_samples, image_size, image_size)
            Transformed data. If ``flatten=True``, the shape is
            `(n_samples, image_size * image_size)`.

        """
        X = check_array(X)
        n_samples, n_timestamps = X.shape
        image_size = self._check_params(n_timestamps)

        discretizer = KBinsDiscretizer(n_bins=self.n_bins,
                                       strategy=self.strategy)
        X_binned = discretizer.fit_transform(X)

        X_mtm = _markov_transition_matrix(X_binned, n_samples,
                                          n_timestamps, self.n_bins)
        sum_mtm = X_mtm.sum(axis=2)
        np.place(sum_mtm, sum_mtm == 0, 1)
        X_mtm /= sum_mtm[:, :, None]

        X_mtf = _markov_transition_field(
            X_binned, X_mtm, n_samples, n_timestamps, self.n_bins
        )

        window_size, remainder = divmod(n_timestamps, image_size)
        if remainder == 0:
            X_amtf = np.reshape(
                X_mtf, (n_samples, image_size, window_size,
                        image_size, window_size)
            ).mean(axis=(2, 4))
        else:
            window_size += 1
            start, end, _ = segmentation(
                n_timestamps, window_size, self.overlapping, image_size
            )
            X_amtf = _aggregated_markov_transition_field(
                X_mtf, n_samples, image_size, start, end
            )
        if self.flatten:
            return X_amtf.reshape(n_samples, -1)
        return X_amtf
Transform each time series into a MTF image.

        Parameters
        ----------
        X : array-like, shape = (n_samples, n_timestamps)
            Input data

        Returns
        -------
        X_new : array-like, shape = (n_samples, image_size, image_size)
            Transformed data. If ``flatten=True``, the shape is
            `(n_samples, image_size * image_size)`.

        
pyts/image/mtf.py