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

How to Convert a List to numpy.datetime64 format

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

a = np.datetime64('2020-01-01')

但是如果我们有一个包含多个日期字符串的列表怎么办?

我们如何应用相同的 np.datetime64 将所有内部元素转换为日期时间格式?也许除了做一个for循环。

使用列表理解:

strings_list= [...]
npdate_list = [np.datetime64(x) for x in strings_list]

您是否有特定原因想要避免循环?

列表理解没问题?

当你有你的字符串列表时,将它用作 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]')

如您所见,在本例中,默认精度为 。 但是您可以明确地传递精度,例如b = np.array(lst, dtype='datetime64[s]').

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

numpy.datetime64('2020-01-01')