code: def split(self, test_size=0.1, stratify=False, inplace=False, seed=33, indices=None):
          
  
          if not self.loaded:
              self.load()
  
          if stratify:
              stratify = self.y_train
          else:
              stratify = None
  
          if indices is None:
              X_train, X_test, y_train, y_test = train_test_split(self.X_train, self._y_train,
                                                                  test_size=test_size,
                                                                  random_state=seed,
                                                                  stratify=stratify, )
          else:
              X_train, y_train = idx(self.X_train, indices[0]), self.y_train[indices[0]]
              X_test, y_test = idx(self.X_train, indices[1]), self.y_train[indices[1]]
  
          if inplace:
              self._X_train, self._X_test, self._y_train, self._y_test = X_train, X_test, y_train, y_test
  
          return X_train, y_train, X_test, y_test
docs: Splits train set into two parts (train/test).
  
          Parameters
          ----------
          test_size : float, default 0.1
          stratify : bool, default False
          inplace : bool, default False
              If `True` then dataset's train/test sets will be replaced with new data.
          seed : int, default 33
          indices : list(np.ndarray, np.ndarray), default None
              Two numpy arrays that contain indices for train/test slicing.
  
          Returns
          -------
          X_train : np.ndarray
          y_train : np.ndarray
          X_test : np.ndarray
          y_test : np.ndarray
  
          Examples
          --------
  
          >>> train_index = np.array(range(250))
          >>> test_index = np.array(range(250,333))
          >>> res = dataset.split(indices=(train_index,test_index))
  
          >>> res = dataset.split(test_size=0.3,seed=1111)