Get year, month or day from numpy datetime64

datetime, numpy, python

Solution

As datetime is not stable in numpy I would use pandas for this:

In [52]: import pandas as pd

In [53]: dates = pd.DatetimeIndex(['2010-10-17', '2011-05-13', "2012-01-15"])

In [54]: dates.year
Out[54]: array([2010, 2011, 2012], dtype=int32)

Pandas uses numpy datetime internally, but seems to avoid the shortages, that numpy has up to now.

Problem

I have an array of datetime64 type: ``` dates = np.datetime64(['2010-10-17', '2011-05-13', "2012-01-15"]) ``` Is there a better way than looping through each element just to get np.array of years: ``` years = f(dates) #output: array([2010, 2011, 2012], dtype=int8) #or dtype = string ``` I'm using stable numpy version 1.6.2.

Original source

Related problems