def str_slice(arr, start=None, stop=None, step=None):
obj = slice(start, stop, step)<EOL>f = lambda x: x[obj]<EOL>return _na_map(f, arr)<EOL>
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