class_docstr: Estimator to filter RtEpochs.
  
  Applies a zero-phase low-pass, high-pass, band-pass, or band-stop
  filter to the channels selected by "picks".
  
  l_freq and h_freq are the frequencies below which and above which,
  respectively, to filter out of the data. Thus the uses are:
  
      - l_freq < h_freq: band-pass filter
      - l_freq > h_freq: band-stop filter
      - l_freq is not None, h_freq is None: low-pass filter
      - l_freq is None, h_freq is not None: high-pass filter
  
  If n_jobs > 1, more memory is required as "len(picks) * n_times"
  additional time points need to be temporarily stored in memory.
  
  Parameters
  ----------
  %(info_not_none)s
  %(l_freq)s
  %(h_freq)s
  %(picks_good_data)s
  %(filter_length)s
  %(l_trans_bandwidth)s
  %(h_trans_bandwidth)s
  n_jobs : int | str
      Number of jobs to run in parallel.
      Can be 'cuda' if ``cupy`` is installed properly and method='fir'.
  method : str
      'fir' will use overlap-add FIR filtering, 'iir' will use IIR filtering.
  iir_params : dict | None
      Dictionary of parameters to use for IIR filtering.
      See mne.filter.construct_iir_filter for details. If iir_params
      is None and method="iir", 4th order Butterworth will be used.
  %(fir_design)s
  %(verbose)s
  
  See Also
  --------
  TemporalFilter
  
  Notes
  -----
  This is primarily meant for use in realtime applications.
  In general it is not recommended in a normal processing pipeline as it may result
  in edge artifacts. Use with caution.
docstr: Filter data.
  
  Parameters
  ----------
  epochs_data : array, shape (n_epochs, n_channels, n_times)
      The data.
  
  Returns
  -------
  X : array, shape (n_epochs, n_channels, n_times)
      The data after filtering.
docstr_tok: ["Filter","data",".","Parameters","--","--","--","--","--","epochs_data",":","array",",","shape","(","n_epochs",",","n_channels",",","n_times",")","The","data",".","Returns","--","--","--","-","X",":","array",",","shape","(","n_epochs",",","n_channels",",","n_times",")","The","data","after","filtering","."]
code: def transform(self, epochs_data):
      """Filter data.
  
      Parameters
      ----------
      epochs_data : array, shape (n_epochs, n_channels, n_times)
          The data.
  
      Returns
      -------
      X : array, shape (n_epochs, n_channels, n_times)
          The data after filtering.
      """
      if not isinstance(epochs_data, np.ndarray):
          raise ValueError(
              "epochs_data should be of type ndarray (got %s)."
              % type(epochs_data)
          )
      epochs_data = np.atleast_3d(epochs_data)
      return filter_data(
          epochs_data,
          self.info["sfreq"],
          self.l_freq,
          self.h_freq,
          self.picks,
          self.filter_length,
          self.l_trans_bandwidth,
          self.h_trans_bandwidth,
          method=self.method,
          iir_params=self.iir_params,
          n_jobs=self.n_jobs,
          copy=False,
          fir_design=self.fir_design,
          verbose=False,
      )
  
imports: import numpy
  from .._fiff.pick import _pick_data_channels, _picks_by_type, _picks_to_idx, pick_info, pick_types
  from ..cov import _check_scalings_user
  from ..filter import filter_data
  from ..time_frequency import psd_array_multitaper
  from ..utils import _check_option, _validate_type, fill_doc, verbose
  from .base import BaseEstimator
  from .mixin import TransformerMixin
label_desc: Use image node_id 3 for calling the FilterEstimator obj's underlying member method code with example usage: obj.transform(epochs_data) and returns: filter_data