0

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

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

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

我们如何能够应用相同np.datetime64的方法将里面的所有元素转换为日期时间格式?除了做一个for循环之外。

4

2 回答 2

1

当您拥有字符串列表时,将其用作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]')

As you can see, in this case the default precision is Day. But you can pass the precision explicitely, e.g. b = np.array(lst, dtype='datetime64[s]').

Don't be misled by apostrophes surrounding each element in the above printout, they are not strings. To check it, execute a[0] and you will get:

numpy.datetime64('2020-01-01')
于 2020-08-25T09:40:50.260 回答
0

使用列表理解:

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

您是否有特定的理由要避免循环?

列表理解好吗?

于 2020-08-25T09:27:58.343 回答