Slightly unintuitive converstion between timestamp and datetime during indexing / slicing
#### Code Sample

import pandas as pd
import numpy as np

df = pd.DataFrame(index=[0],columns=['c'],dtype='datetime64[ns]')
df['c'].iloc[0] = np.datetime64('2018-08-01 00:00:00')



df['c'][df.index==0].values[0]

Out[83]: numpy.datetime64('2018-08-01T00:00:00.000000000')


df['c'].iloc[0]

Out[80]: Timestamp('2018-08-01 00:00:00')

(Python 3.6, pandas 0.23.4)

#### Problem description
Just thought it is a bit unintuitive that the above conversion occurs? Regardless of it being somewhat bad practice not having chosen a native date format, I feel this conversion should maybe not take place?

Not been around handling dates with python for long, so disregard if it doesn't make sense. Cost me a bit of time to find out what's going on though, as this greatly complicated plotting as well as calculations. (Accessing in slicing notation is much more convenient in my case.)


Logic comparisons between the formats are not unproblematic either, I think. (Equality comparison between timestamp and dt46ns does not throw an error.

In[82]:
df['c'][df.index==0].values[0] == df['c'].iloc[0]
Out[82]: False