Python 为什么numpy.datetime64给出了一个年数组错误?

Python 为什么numpy.datetime64给出了一个年数组错误?,python,numpy,datetime,Python,Numpy,Datetime,我正在处理一些日期格式为2017.08333的数据。在将此对象转换为datetime对象的过程中,我在尝试将整数年转换为datetime时出错 np.datetime64(['2017','2018']) 上述操作失败,错误为:无法将对象转换为NumPy datetime 我觉得numpy函数是矢量化的。有人能解释一下为什么这不起作用以及我如何解决这个问题吗?我有3000个日期要转换,因此不涉及循环的东西是理想的。要创建一个日期数组,可以执行以下操作: import numpy as np

我正在处理一些日期格式为2017.08333的数据。在将此对象转换为datetime对象的过程中,我在尝试将整数年转换为datetime时出错

np.datetime64(['2017','2018'])
上述操作失败,错误为:
无法将对象转换为NumPy datetime


我觉得numpy函数是矢量化的。有人能解释一下为什么这不起作用以及我如何解决这个问题吗?我有3000个日期要转换,因此不涉及循环的东西是理想的。

要创建一个日期数组,可以执行以下操作:

import numpy as np

print(np.array(['2018', '2017'], dtype=np.datetime64))
输出

['2018' '2017']

可以找到更详细的解释

其中一些是。我不确定您的输入是什么样子的(list或np.array),但您可以这样做

np.array(['2017', '2018'], dtype=np.datetime64)


您也可以使用
map
作为附加功能:

>>> import numpy as np
>>> np.array(list(map(np.datetime64,['2017', '2018'])))
array(['2017', '2018'], dtype='datetime64[Y]')

哇,谢谢。我磨齿轮已经有一段时间了。我觉得有点傻,这太容易了。谢谢,太多了。我花了很多时间试图弄明白这一点。顺便说一句,如果
numpy
无法识别该装置,请使用
dtype='M8[类似于'u Y'u或'u D'u或'u s'的东西]
>>> import numpy as np
>>> np.array(list(map(np.datetime64,['2017', '2018'])))
array(['2017', '2018'], dtype='datetime64[Y]')