code: def str_slice(arr, start=None, stop=None, step=None):
      
      obj = slice(start, stop, step)
      f = lambda x: x[obj]
      return _na_map(f, arr)
docs: Slice substrings from each element in the Series or Index.
  
      Parameters
      ----------
      start : int, optional
          Start position for slice operation.
      stop : int, optional
          Stop position for slice operation.
      step : int, optional
          Step size for slice operation.
  
      Returns
      -------
      Series or Index of object
          Series or Index from sliced substring from original string object.
  
      See Also
      --------
      Series.str.slice_replace : Replace a slice with a string.
      Series.str.get : Return element at position.
          Equivalent to `Series.str.slice(start=i, stop=i+1)` with `i`
          being the position.
  
      Examples
      --------
      >>> s = pd.Series(["koala", "fox", "chameleon"])
      >>> s
      0        koala
      1          fox
      2    chameleon
      dtype: object
  
      >>> s.str.slice(start=1)
      0        oala
      1          ox
      2    hameleon
      dtype: object
  
      >>> s.str.slice(stop=2)
      0    ko
      1    fo
      2    ch
      dtype: object
  
      >>> s.str.slice(step=2)
      0      kaa
      1       fx
      2    caeen
      dtype: object
  
      >>> s.str.slice(start=0, stop=5, step=3)
      0    kl
      1     f
      2    cm
      dtype: object
  
      Equivalent behaviour to:
  
      >>> s.str[0:5:3]
      0    kl
      1     f
      2    cm
      dtype: object