當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python NumPy datetime_as_string方法用法及代碼示例


NumPy 的 datetime_as_string(~) 方法將日期時間數組轉換為字符串數組,並提供多種格式化方法。

參數

1. arr | array-like

日期時間數組。

2. unit | Nonestring | optional

結果字符串的格式。允許的值如下:

單元

說明

None

該單元成為輸入數組中的最低單元。例如,如果您有 ["2020-12-25", "2020-12"] ,則此處的最低單位是天,因此我們最終會得到 ["2020-12-25", "2020-12-01"]

"auto"

單位相當於 "D" ,即天。例如,字符串均采用 "2020-12-25" 形式。

Dateunit

可以是 "Y"(年)、"M"(月)、"W"(周)、"D"(天)、"h"(小時)、"m"(分鍾)、"s"(秒)和"ms"(毫秒)。

請注意,對於缺少特定單位的日期,將使用單位一的默認值。例如,指定單位 "D" (即天)會將 "2020-12" 等日期時間轉換為 "2020-12-01"

默認情況下,unit=None

3. timezone | string | optional

要使用的時區。允許的值如下:

時區

說明

naive

"naive" 時區是一種不知道時區的時區 - 它隻是一個簡單的日期時間,絕對沒有任何地點上下文。

UTC

協調世界時。

local

考慮您地理位置的時區。

默認情況下,timezone="naive" 。請參閱下麵的示例以進行說明。

4. casting | string | optional

必須遵守的選角規則。官方文檔沒有對規則的具體細節提供任何解釋,因此這裏我們將嘗試從基礎層麵介紹一些主要規則。

規則

說明

no

每當執行任何類型的轉換時都會引發錯誤。

safe

當您投射到不太具體的單位(例如從幾天到幾周)時會拋出錯誤。

unsafe

允許任何類型的鑄造。這與 "no" 規則相反。

對於那些有更多見解的人,我們很樂意與您交談!

返回值

表示輸入日期時間的 NumPy 字符串數組。

例子

基本用法

datetimes = [np.datetime64("2020-05-30"), np.datetime64("2020-12-25")]
np.datetime_as_string(datetimes)



array(['2020-05-30', '2020-12-25'], dtype='<U28')

更改單位

None
datetimes = [np.datetime64("2020-05"), np.datetime64("2020-12")]
np.datetime_as_string(datetimes, unit=None)



array(['2020-05', '2020-12'], dtype='<U25')
汽車
datetimes = [np.datetime64("2020-05"), np.datetime64("2020-12")]
np.datetime_as_string(datetimes, unit="auto")



array(['2020-05-01', '2020-12-01'], dtype='<U62')

請注意結果字符串如何包含天數,即 unit="auto"unit="D"(天)相同。

幾個月
datetimes = [np.datetime64("2020-05-30"), np.datetime64("2020-12-25")]
np.datetime_as_string(datetimes, unit="M")



array(['2020-05', '2020-12'], dtype='<U25')

更改時區

幼稚的
datetimes = [np.datetime64("2020-12-25T03:30"), np.datetime64("2020-12-06T02:50")]
np.datetime_as_string(datetimes, timezone="naive")



array(['2020-12-25T03:30', '2020-12-06T02:50'], dtype='<U35')
UTC
datetimes = [np.datetime64("2020-12-25T03:30"), np.datetime64("2020-12-06T02:50")]
np.datetime_as_string(datetimes, timezone="UTC")



array(['2020-12-25T03:30Z', '2020-12-06T02:50Z'], dtype='<U35')

請注意末尾有 Z,表明時區是 UTC。

當地的
datetimes = [np.datetime64("2020-12-25T03:30"), np.datetime64("2020-12-06T02:50")]
np.datetime_as_string(datetimes, timezone="local")



array(['2020-12-25T11:30+0800', '2020-12-06T10:50+0800'], dtype='<U39')

請注意最後的 +0800,這意味著我當前的位置比 UTC 早 8 小時。

選角規則

datetimes = [np.datetime64("2020-05-05")]
np.datetime_as_string(datetimes, unit="M", casting="no")



TypeError: Cannot create a datetime string as units 'M' from a NumPy datetime with units 'D' according to the rule 'no'

這會引發錯誤,因為 "no" 規則不允許任何形式的轉換。

安全的
datetimes = [np.datetime64("2020-05-05")]
np.datetime_as_string(datetimes, unit="M", casting="safe")



TypeError: Cannot create a datetime string as units 'M' from a NumPy datetime with units 'D' according to the rule 'safe'

這會引發錯誤,因為 "safe" 規則不允許轉換為不太具體的單位。

不安全
datetimes = [np.datetime64("2020-05-05"), np.datetime64("2020")]
np.datetime_as_string(datetimes, unit="M", casting="unsafe")



array(['2020-05', '2020-01'], dtype='<U25')

此處,不會拋出任何錯誤,因為 "unsafe" 規則允許任何形式的轉換。

相關用法


注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 NumPy | datetime_as_string method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。