You can do this also just by using the datetime
from the standard library. It is also about 40% faster than using pandas, or 80% faster than converting to string:
import datetime as dt
import numpy as np
t = np.datetime64("2020-04-15T13:20:06.810000000")
t1 = dt.datetime.utcfromtimestamp(t.tolist() / 1e9)
Example output
In [47]: t = np.datetime64("2020-04-15T13:20:06.810000000")
In [48]: t1 = dt.datetime.utcfromtimestamp(t.tolist() / 1e9)
In [49]: t1.hour
Out[49]: 13
In [50]: t1.minute
Out[50]: 20
In [51]: t1.second
Out[51]: 6
Speed comparison for extracting just hour
In [41]: dt.datetime.utcfromtimestamp(t.tolist() / 1e9).hour
Out[41]: 13
In [42]: pd.Timestamp(t).hour
Out[42]: 13
In [43]: int(t.astype(str)[11:13])
Out[43]: 13
In [44]: %timeit dt.datetime.utcfromtimestamp(t.tolist() / 1e9).hour
760 ns ± 23.2 ns per loop (mean ± std. dev. of 7 runs, 1,000,000 loops each)
In [45]: %timeit pd.Timestamp(t).hour
1.22 µs ± 14 ns per loop (mean ± std. dev. of 7 runs, 1,000,000 loops each)
In [46]: %timeit int(t.astype(str)[11:13])
3.59 µs ± 48.9 ns per loop (mean ± std. dev. of 7 runs, 100,000 loops each)