【发布时间】:2020-08-25 09:18:48
【问题描述】:
我知道我们可以将单个字符串创建为np.datetime64 格式,例如:
a = np.datetime64('2020-01-01')
但是如果我们有一个包含多个日期字符串的列表呢?
我们如何能够应用相同的np.datetime64 将其中的所有元素转换为日期时间格式?除了做一个for循环之外。
【问题讨论】:
标签: python numpy datetime64
我知道我们可以将单个字符串创建为np.datetime64 格式,例如:
a = np.datetime64('2020-01-01')
但是如果我们有一个包含多个日期字符串的列表呢?
我们如何能够应用相同的np.datetime64 将其中的所有元素转换为日期时间格式?除了做一个for循环之外。
【问题讨论】:
标签: python numpy datetime64
当你有你的字符串列表时,将它用作 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')
【讨论】:
使用列表推导:
strings_list= [...]
npdate_list = [np.datetime64(x) for x in strings_list]
您是否有特定原因要避免循环?
列表理解还可以吗?
【讨论】: