class_docstr: Transformer base class.
class_docstr_tok: ["Transformer","base","class","."]
docstr: Update transformer with X, optionally y.
  
  State required:
      Requires state to be "fitted".
  
  Accesses in self:
  _is_fitted : must be True
  _X : accessed by _update and by update_data, if remember_data tag is True
  fitted model attributes (ending in "_") : must be set, accessed by _update
  
  Writes to self:
  _X : updated by values in X, via update_data, if remember_data tag is True
  fitted model attributes (ending in "_") : only if update_params=True
      type and nature of update are dependent on estimator
  
  Parameters
  ----------
  X : time series in sktime compatible data container format
      Data to update transform with, of sktime type as follows:
      Series: interpreted as single time series
          pd.Series, pd.DataFrame, or np.ndarray (1D or 2D)
          if np.ndarray, of shape (n_timepoints) or (n_variables, n_timepoints)
      Panel: pd.DataFrame with 2-level MultiIndex, list of pd.DataFrame,
          pd.DataFrame in long/wide format, or 3D np.ndarray
          if pd.DataFrame with 2-level MultiIndex, index is (instance, time)
          if 3D np.ndarray, of shape (n_instances, n_variables, n_timepoints)
      Hierarchical: pd.DataFrame with 3- or more-level MultiIndex
          highest (rightmost) level  of MultiIndex is time
      for more details on sktime mtype format specifications,
      and additional valid type specifications, refer to
          examples/AA_datatypes_and_datasets.ipynb
  y : optional, time series in sktime compatible data format, default=None
      Additional data, e.g., labels for transformation
      some transformers require this, see class docstring for details
  
  Returns
  -------
  self : a fitted instance of the estimator
code: def update(self, X, y=None, update_params=True):
      """Update transformer with X, optionally y.
  
      State required:
          Requires state to be "fitted".
  
      Accesses in self:
      _is_fitted : must be True
      _X : accessed by _update and by update_data, if remember_data tag is True
      fitted model attributes (ending in "_") : must be set, accessed by _update
  
      Writes to self:
      _X : updated by values in X, via update_data, if remember_data tag is True
      fitted model attributes (ending in "_") : only if update_params=True
          type and nature of update are dependent on estimator
  
      Parameters
      ----------
      X : time series in sktime compatible data container format
          Data to update transform with, of sktime type as follows:
          Series: interpreted as single time series
              pd.Series, pd.DataFrame, or np.ndarray (1D or 2D)
              if np.ndarray, of shape (n_timepoints) or (n_variables, n_timepoints)
          Panel: pd.DataFrame with 2-level MultiIndex, list of pd.DataFrame,
              pd.DataFrame in long/wide format, or 3D np.ndarray
              if pd.DataFrame with 2-level MultiIndex, index is (instance, time)
              if 3D np.ndarray, of shape (n_instances, n_variables, n_timepoints)
          Hierarchical: pd.DataFrame with 3- or more-level MultiIndex
              highest (rightmost) level  of MultiIndex is time
          for more details on sktime mtype format specifications,
          and additional valid type specifications, refer to
              examples/AA_datatypes_and_datasets.ipynb
      y : optional, time series in sktime compatible data format, default=None
          Additional data, e.g., labels for transformation
          some transformers require this, see class docstring for details
  
      Returns
      -------
      self : a fitted instance of the estimator
      """
      # check whether is fitted
      self.check_is_fitted()
  
      # if requires_y is set, y is required in fit and update
      if self.get_tag("requires_y") and y is None:
          raise ValueError(
              f"{self.__class__.__name__} requires `y` in `update`."
          )
  
      # check and convert X/y
      X_inner, y_inner = self._check_X_y(X=X, y=y)
  
      # update memory of X, if remember_data tag is set to True
      if self.get_tag("remember_data", False):
          self._X = update_data(None, X_new=X_inner)
  
      # skip everything if update_params is False
      # skip everything if fit_is_empty is True
      if not update_params or self.get_tag("fit_is_empty", False):
          return self
  
      # checks and conversions complete, pass to inner fit
      #####################################################
      vectorization_needed = isinstance(X_inner, VectorizedDF)
      # we call the ordinary _fit if no looping/vectorization needed
      if not vectorization_needed:
          self._update(X=X_inner, y=y_inner)
      else:
          # otherwise we call the vectorized version of fit
          self._vectorize("update", X=X_inner, y=y_inner)
  
      return self
  
imports: from itertools import product
  from typing import Union
  import numpy
  import pandas
  from sktime.base import BaseEstimator
  from sktime.datatypes import VectorizedDF, check_is_error_msg, check_is_mtype, check_is_scitype, convert, convert_to, mtype_to_scitype, update_data
  from sktime.datatypes._series_as_panel import convert_to_scitype
  from sktime.utils.sklearn import is_sklearn_classifier, is_sklearn_clusterer, is_sklearn_regressor, is_sklearn_transformer
  from sktime.utils.validation._dependencies import _check_estimator_deps
label_desc: Use image node_id 14 for calling the BaseTransformer obj's underlying member method code with example usage: obj.update(X, y, update_params) and returns: self, self