code: def element_slice(self, start=None, stop=None, step=None):
          
          if self.dtype not in [str, array.array, list]:
              raise TypeError("SArray must contain strings, arrays or lists")
          with cython_context():
              return SArray(_proxy=self.__proxy__.subslice(start, step, stop))
docs: This returns an SArray with each element sliced accordingly to the
          slice specified. This is conceptually equivalent to:
  
          >>> g.apply(lambda x: x[start:step:stop])
  
          The SArray must be of type list, vector, or string.
  
          For instance:
  
          >>> g = SArray(["abcdef","qwerty"])
          >>> g.element_slice(start=0, stop=2)
          dtype: str
          Rows: 2
          ["ab", "qw"]
          >>> g.element_slice(3,-1)
          dtype: str
          Rows: 2
          ["de", "rt"]
          >>> g.element_slice(3)
          dtype: str
          Rows: 2
          ["def", "rty"]
  
          >>> g = SArray([[1,2,3], [4,5,6]])
          >>> g.element_slice(0, 1)
          dtype: str
          Rows: 2
          [[1], [4]]
  
          Parameters
          ----------
          start : int or None (default)
              The start position of the slice
  
          stop: int or None (default)
              The stop position of the slice
  
          step: int or None (default)
              The step size of the slice
  
          Returns
          -------
          out : SArray
              Each individual vector/string/list sliced according to the arguments.