docs: def update(self, y=None, inplace=False, **kwargs):
          """
          Add data or change classification parameters.
  
          Parameters
          ----------
          y           :   array
                          (n,1) array of data to classify
          inplace     :   bool
                          whether to conduct the update in place or to return a
                          copy estimated from the additional specifications.
  
          Additional parameters provided in **kwargs are passed to the init
          function of the class. For documentation, check the class constructor.
          """
          kwargs.update({'k': kwargs.pop('k', self.k)})
          kwargs.update({'pct': kwargs.pop('pct', self.pct)})
          kwargs.update({'truncate': kwargs.pop('truncate', self._truncated)})
          if inplace:
              self._update(y, **kwargs)
          else:
              new = copy.deepcopy(self)
              new._update(y, **kwargs)
              return new