如何将列表转换为 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')
我知道我们可以将单个字符串创建为 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')