Python 如何将列表转换为numpy.datetime64格式

Python 如何将列表转换为numpy.datetime64格式,python,numpy,datetime64,Python,Numpy,Datetime64,我知道我们可以创建一个字符串作为np.datetime64格式,例如: a = np.datetime64('2020-01-01') 但是如果我们有一个包含多个日期字符串的列表呢 我们如何应用相同的np.datetime64将其中的所有元素转换为datetime格式?除了执行for循环之外。使用列表理解: strings_list= [...] npdate_list = [np.datetime64(x) for x in strings_list] 您是否有避免循环的具体原因 列表理解

我知道我们可以创建一个字符串作为
np.datetime64
格式,例如:

a = np.datetime64('2020-01-01')
但是如果我们有一个包含多个日期字符串的列表呢


我们如何应用相同的
np.datetime64
将其中的所有元素转换为datetime格式?除了执行for循环之外。

使用列表理解:

strings_list= [...]
npdate_list = [np.datetime64(x) for x in strings_list]
您是否有避免循环的具体原因


列表理解可以吗?

当您有字符串列表时,将其用作Numpy数组的源, 将datetime64作为数据类型传递。例如:

当您执行
a
(实际在笔记本中打印此数组)时, 您将获得:

array(['2020-01-01', '2020-02-05', '2020-03-07'], dtype='datetime64[D]')
numpy.datetime64('2020-01-01')
如您所见,在本例中,默认精度为天。 但是您可以明确地传递精度,例如
b=np.array(lst,dtype='datetime64[s]')

不要被上面每个元素周围的撇号所误导 打印输出时,它们是而不是字符串。要检查它,请执行
a[0]
和 您将获得:

array(['2020-01-01', '2020-02-05', '2020-03-07'], dtype='datetime64[D]')
numpy.datetime64('2020-01-01')

这回答了你的问题吗?OP正在寻找没有循环的解决方案。是的,我读过。因为我不是一个经验丰富的程序员,我对它非常陌生,因为我需要作为一门辅助课程来学习,所以Python是我所知道的唯一语言,所以我尽量避免循环,因为我们可以很容易地将单个字符串转换为np.datetime64,但当我们有一个列表时,它就不同了。也许你可以给我看一个简化的for循环:)?谢谢你,伙计!我的第一个答案是循环!它被称为列表理解,它从“内部”for循环创建一个列表。但是你是对的,如果你是新来的,那以后会来的。对于简单的For循环:lst=['2020-01-01','2020-02-05','2020-03-07']date_list=[]对于lst:date_list.append(np.datetime64(element))中的元素,我不太确定精度是什么意思,我运行了代码a=np.array(lst,dtype='datetime64'),并打印出每个元素类型()它确实给了我datetime64。日期精度可以是例如“Day”,但只能是Numpy。熊猫使用毫秒(毫秒)精度。这意味着在Numpy中我无法打印秒数?Day是最精确的维度?每个字符串的格式是什么?'yyy-MM-DD'据我所知,他创建datetime类型的Numpy数组,但精度不同,然后打印值。例如,对于日精度,您只能在不同日期的0:00时获得值。