docs: def _apply_scale(self, a, scale, feat):
          """Helper function for transforming an aray to log-scale
  
          Parameters
          ----------
          a: np.ndarray
              Input array
          scale:
              If set to "log", take the logarithm of `a`; if set to
              "linear" return `a` unchanged.
  
          Returns
          -------
          b: np.ndarray
              The scaled array
  
          Notes
          -----
          If the scale is not "linear", then a new array is returned.
          All warnings are suppressed when computing `np.log(a)`, as
          `a` may have negative or nan values.
          """
          if scale == "linear":
              b = a
          elif scale == "log":
              with warnings.catch_warnings(record=True) as w:
                  warnings.simplefilter("always")
                  b = np.log(a)
                  if len(w):
                      # Tell the user that the log-transformation issued
                      # a warning.
                      warnings.warn("Invalid values encounterd in np.log "
                                    "while scaling feature '{}'!".format(feat))
          else:
              raise ValueError("`scale` must be either 'linear' or 'log', "
                               + "got '{}'!".format(scale))
          return b