当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。