我知道我們可以創建一個字符串來np.datetime64格式化,例如:a = np.datetime64('2020-01-01')但是,如果我們有一個包含多個日期字符串的列表怎么辦?我們如何應用相同的方法np.datetime64將內部的所有元素轉換為日期時間格式?也許除了做一個for循環。
2 回答

天涯盡頭無女友
TA貢獻1831條經驗 獲得超9個贊
當您擁有字符串列表時,將其用作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')

紅糖糍粑
TA貢獻1815條經驗 獲得超6個贊
使用列表理解:
strings_list= [...] npdate_list = [np.datetime64(x) for x in strings_list]
您是否有特定原因想要避免循環?
列表理解沒問題?
添加回答
舉報
0/150
提交
取消