class_docstr: A cudf based implementation of Stratified K-Folds cross-validator.
  
  Provides train/test indices to split data into stratified K folds.
  The percentage of samples for each class are maintained in each
  fold.
  
  Parameters
  ----------
  n_splits : int, default=5
      Number of folds. Must be at least 2.
  shuffle : boolean, default=False
      Whether to shuffle each class's samples before splitting.
  random_state : int (default=None)
      Random seed
  
  Examples
  --------
  Splitting X,y into stratified K folds
  .. code-block:: python
      import cupy
      X = cupy.random.rand(12,10)
      y = cupy.arange(12)%4
      kf = StratifiedKFold(n_splits=3)
      for tr,te in kf.split(X,y):
          print(tr, te)
  Output:
  .. code-block:: python
      [ 4  5  6  7  8  9 10 11] [0 1 2 3]
      [ 0  1  2  3  8  9 10 11] [4 5 6 7]
      [0 1 2 3 4 5 6 7] [ 8  9 10 11]
code: def __init__(self, n_splits=5, shuffle=False, random_state=None):
      if n_splits < 2 or not isinstance(n_splits, int):
          raise ValueError(
              f"n_splits {n_splits} is not a integer at least 2"
          )
  
      if random_state is not None and not isinstance(random_state, int):
          raise ValueError(
              f"random_state {random_state} is not an integer"
          )
  
      self.n_splits = n_splits
      self.shuffle = shuffle
      self.seed = random_state
  
file_path: cuml/python/cuml/model_selection/_split.py
imports: from typing import Optional, Union
  from cuml.common import input_to_cuml_array
  from cuml.internals.array import array_to_memory_order
  from cuml.internals.safe_imports import cpu_only_import, gpu_only_import, gpu_only_import_from
label_desc: Use image node_id 1 to create a new StratifiedKFold object  with example: obj = StratifiedKFold(n_splits, shuffle, random_state)