class_docstr: Estimator to filter data array along the last dimension.
  
  Applies a zero-phase low-pass, high-pass, band-pass, or band-stop
  filter to the channels.
  
  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
  
  See :func:`mne.filter.filter_data`.
  
  Parameters
  ----------
  l_freq : float | None
      Low cut-off frequency in Hz. If None the data are only low-passed.
  h_freq : float | None
      High cut-off frequency in Hz. If None the data are only
      high-passed.
  sfreq : float, default 1.0
      Sampling frequency in Hz.
  filter_length : str | int, default 'auto'
      Length of the FIR filter to use (if applicable):
  
          * int: specified length in samples.
          * 'auto' (default in 0.14): the filter length is chosen based
            on the size of the transition regions (7 times the reciprocal
            of the shortest transition band).
          * str: (default in 0.13 is "10s") a human-readable time in
            units of "s" or "ms" (e.g., "10s" or "5500ms") will be
            converted to that number of samples if ``phase="zero"``, or
            the shortest power-of-two length at least that duration for
            ``phase="zero-double"``.
  
  l_trans_bandwidth : float | str
      Width of the transition band at the low cut-off frequency in Hz
      (high pass or cutoff 1 in bandpass). Can be "auto"
      (default in 0.14) to use a multiple of ``l_freq``::
  
          min(max(l_freq * 0.25, 2), l_freq)
  
      Only used for ``method='fir'``.
  h_trans_bandwidth : float | str
      Width of the transition band at the high cut-off frequency in Hz
      (low pass or cutoff 2 in bandpass). Can be "auto"
      (default in 0.14) to use a multiple of ``h_freq``::
  
          min(max(h_freq * 0.25, 2.), info['sfreq'] / 2. - h_freq)
  
      Only used for ``method='fir'``.
  n_jobs : int | str, default 1
      Number of jobs to run in parallel.
      Can be 'cuda' if ``cupy`` is installed properly and method='fir'.
  method : str, default 'fir'
      'fir' will use overlap-add FIR filtering, 'iir' will use IIR
      forward-backward filtering (via filtfilt).
  iir_params : dict | None, default 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_window : str, default 'hamming'
      The window to use in FIR design, can be "hamming", "hann",
      or "blackman".
  fir_design : str
      Can be "firwin" (default) to use :func:`scipy.signal.firwin`,
      or "firwin2" to use :func:`scipy.signal.firwin2`. "firwin" uses
      a time-domain design technique that generally gives improved
      attenuation using fewer samples than "firwin2".
  
      .. versionadded:: 0.15
  %(verbose)s
  
  See Also
  --------
  FilterEstimator
  Vectorizer
  mne.filter.filter_data
docstr: Filter data along the last dimension.
  
  Parameters
  ----------
  X : array, shape (n_epochs, n_channels, n_times) or shape (n_channels, n_times)
      The data to be filtered over the last dimension. The channels
      dimension can be zero when passing a 2D array.
  
  Returns
  -------
  X : array
      The data after filtering.
docstr_tok: ["Filter","data","along","the","last","dimension",".","Parameters","--","--","--","--","--","X",":","array",",","shape","(","n_epochs",",","n_channels",",","n_times",")","or","shape","(","n_channels",",","n_times",")","The","data","to","be","filtered","over","the","last","dimension",".","The","channels","dimension","can","be","zero","when","passing","a","2D","array",".","Returns","--","--","--","-","X",":","array","The","data","after","filtering","."]
code: def transform(self, X):
      """Filter data along the last dimension.
  
      Parameters
      ----------
      X : array, shape (n_epochs, n_channels, n_times) or shape (n_channels, n_times)
          The data to be filtered over the last dimension. The channels
          dimension can be zero when passing a 2D array.
  
      Returns
      -------
      X : array
          The data after filtering.
      """  # noqa: E501
      X = np.atleast_2d(X)
  
      if X.ndim > 3:
          raise ValueError(
              "Array must be of at max 3 dimensions instead "
              "got %s dimensional matrix" % (X.ndim)
          )
  
      shape = X.shape
      X = X.reshape(-1, shape[-1])
      X = filter_data(
          X,
          self.sfreq,
          self.l_freq,
          self.h_freq,
          filter_length=self.filter_length,
          l_trans_bandwidth=self.l_trans_bandwidth,
          h_trans_bandwidth=self.h_trans_bandwidth,
          n_jobs=self.n_jobs,
          method=self.method,
          iir_params=self.iir_params,
          copy=False,
          fir_window=self.fir_window,
          fir_design=self.fir_design,
      )
      return X.reshape(shape)
  
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 TemporalFilter obj's underlying member method code with example usage: obj.transform(X) and returns: X