Search code examples
datetimepython-3.xnumpypandaspython-datetime

Converting datetime string to datetime in numpy (python)


I would like to convert

['17-10-2010 07:15:30', '13-05-2011 08:20:35', "15-01-2013 09:09:09"]

into a Numpy datetime object.

import numpy as np
[np.datetime64(x) for x in ['17-10-2010 07:15:30', '13-05-2011 08:20:35', "15-01-2013 09:09:09"]] 

raised ValueError: Could not convert object to NumPy datetime. However, the following works as I intended

[np.datetime64(x) for x in ['2010-10-17 07:15:30', '2011-05-13 08:20:35', "2012-01-15 09:09:09"]] 

How can I convert my array into a format that conforms with Numpy's datetime64 function requirement?

I am using Numpy version 1.7.0. in python 3.4


Solution

  • So far as I can tell, np.datetime64 only works with

    strings in ISO 8601 date or datetime format

    The to_datetime function in pandas seems to be more flexible:

    import pandas as pd
    a=pd.to_datetime(['17-10-2010 07:15:30', '13-05-2011 08:20:35', "15-01-2013 09:09:09"])
    

    Of course you can easily convert back to numpy:

    np.array(a,dtype=np.datetime64)