我知道我们可以创建一个字符串来np.datetime64
格式化,例如:
a = np.datetime64('2020-01-01')
但是如果我们有一个包含多个日期字符串的列表呢?
我们如何能够应用相同np.datetime64
的方法将里面的所有元素转换为日期时间格式?除了做一个for循环之外。
我知道我们可以创建一个字符串来np.datetime64
格式化,例如:
a = np.datetime64('2020-01-01')
但是如果我们有一个包含多个日期字符串的列表呢?
我们如何能够应用相同np.datetime64
的方法将里面的所有元素转换为日期时间格式?除了做一个for循环之外。
当您拥有字符串列表时,将其用作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')
使用列表理解:
strings_list= [...]
npdate_list = [np.datetime64(x) for x in strings_list]
您是否有特定的理由要避免循环?
列表理解好吗?