所以我有一个ndarray
与此示例类似:
dates = ['3/1/2020','4/15/2020','7/21/2020']
darray = np.asarray([dateutil.parser.parse(d) for d in dates], dtype='datetime64[ns]')
>>> array(['2020-03-01T00:00:00.000000000', '2020-04-15T00:00:00.000000000',
'2020-07-21T00:00:00.000000000'], dtype='datetime64[ns]')
darray.tolist()
>>> [1583020800000000000, 1586908800000000000, 1595289600000000000]
因此,我假设它自POSIX起源(1970-01-01)起转换为纳秒数。有没有办法避免这种数据类型的丢失?
这是您要寻找的吗?
>>> list(darray)
[numpy.datetime64('2020-03-01T00:00:00.000000000'),
numpy.datetime64('2020-04-15T00:00:00.000000000'),
numpy.datetime64('2020-07-21T00:00:00.000000000')]
不同之处在于np.ndarray.tolist()
将值转换为Python类型,而list(...)
则将对象保持原样。在内部,它们当然都包含64位整数。如果要转换为Python日期时间对象,请查看this question。不幸的是,它并不像它那样方便。