我知道我们可以创建一个字符串来np.datetime64格式化,例如:a = np.datetime64('2020-01-01')但是,如果我们有一个包含多个日期字符串的列表怎么办?我们如何应用相同的方法np.datetime64将内部的所有元素转换为日期时间格式?也许除了做一个for循环。
2 回答

天涯尽头无女友
TA贡献1831条经验 获得超9个赞
当您拥有字符串列表时,将其用作Numpy数组的源,将datetime64作为dtype传递。例如:
lst = ['2020-01-01', '2020-02-05', '2020-03-07' ]
a = np.array(lst, dtype='datetime64')
当你执行a(实际上是在笔记本上打印这个数组)时,你会得到:
array(['2020-01-01', '2020-02-05', '2020-03-07'], dtype='datetime64[D]')
如您所见,在这种情况下,默认精度为Day。但是您可以明确地传递精度,例如b = np.array(lst, dtype='datetime64[s]')。
不要被上面打印输出中每个元素周围的撇号所误导,它们不是字符串。要检查它,执行a[0]你会得到:
numpy.datetime64('2020-01-01')

红糖糍粑
TA贡献1815条经验 获得超6个赞
使用列表理解:
strings_list= [...] npdate_list = [np.datetime64(x) for x in strings_list]
您是否有特定原因想要避免循环?
列表理解没问题?
添加回答
举报
0/150
提交
取消