附加工具函数

class darts.utils.utils.ModelMode(value)[source]

基类: Enum

一个枚举。

ADDITIVE = 'additive'
MULTIPLICATIVE = 'multiplicative'
NONE = None
class darts.utils.utils.NotImportedModule(module_name, warn=True)[source]

基类: object

处理可选依赖项导入错误的辅助类。

方法

__call__(*args, **kwargs)

将自身作为函数调用。

usable = False
class darts.utils.utils.SeasonalityMode(value)[source]

基类: Enum

一个枚举。

ADDITIVE = 'additive'
MULTIPLICATIVE = 'multiplicative'
NONE = None
class darts.utils.utils.TrendMode(value)[source]

基类: Enum

一个枚举。

EXPONENTIAL = 'exponential'
LINEAR = 'linear'
darts.utils.utils.drop_after_index(index, split_point)[source]

从索引中删除指定时间 split_point(不包含)之后的所有内容。

参数
  • index (Union[RangeIndex, DatetimeIndex]) – 要从中删除值的索引。

  • split_point (Union[int, Timestamp]) – 指示截止时间的 时间戳/整数。

返回

删除 split_point 之后值的新索引。

返回类型

Union[pd.RangeIndex, pd.DatetimeIndex]

darts.utils.utils.drop_before_index(index, split_point)[source]

从索引中删除指定时间 split_point(不包含)之前的所有内容。

参数
  • index (Union[RangeIndex, DatetimeIndex]) – 要从中删除值的索引。

  • split_point (Union[int, Timestamp]) – 指示截止时间的 时间戳/整数。

返回

删除 split_point 之前值的新索引。

返回类型

Union[pd.RangeIndex, pd.DatetimeIndex]

darts.utils.utils.expand_arr(arr, ndim)[source]

将一个 np.ndarray 扩展到 ndim 维度(如果尚未满足)。

darts.utils.utils.generate_index(start=None, end=None, length=None, freq=None, name=None)[source]

返回具有给定起始点和长度的索引。可以是具有给定频率的 pandas DatetimeIndex,也可以是 pandas RangeIndex。索引从以下位置开始:

参数
  • start (Union[int, str, Timestamp, None]) – 返回索引的起始点。如果传入 pandas Timestamp 或日期字符串,索引将是 pandas DatetimeIndex。如果传入整数,索引将是 pandas RangeIndex。仅与 lengthend 其中一个配合使用。

  • end (Union[int, str, Timestamp, None]) – 可选参数,返回索引的结束点。仅与 startlength 其中一个配合使用。如果设置了 startend 必须与 start 类型相同。否则,可以是 pandas Timestamp 或整数。

  • length (Optional[int, None]) – 可选参数,返回索引的长度。仅与 startend 其中一个配合使用。

  • freq (Union[str, int, DateOffset, None]) – 返回索引中两个相邻条目之间的时间差。如果 start 是时间戳,则期望使用 DateOffset 别名;参见文档。默认使用“D”(每日)。如果 start 是整数,freq 将被解释为底层 RangeIndex 的步长。对于生成整数索引,freq 是可选的(如果未指定,则使用 1)。

  • name (Optional[str, None]) – 可选参数,索引名称。

返回类型

Union[DatetimeIndex, RangeIndex]

darts.utils.utils.n_steps_between(end, start, freq)[source]

获取在 endstart 之间、具有给定频率 freq 的时间步数。适用于整数和时间戳。

  • 如果 endstartfreq 都是整数,我们可以简单地用差值除以频率。

  • 如果 freq 是一个具有明确时间差的 pandas Dateoffset(例如“d”、“h”等,而不是“ME”、“YE”等),

    我们可以简单地除以频率

  • 否则,我们计算两个时间戳之间的周期差。

参数
  • end (Union[Timestamp, int]) – 结束 pandas Timestamp / 整数。

  • start (Union[Timestamp, int]) – 开始 pandas Timestamp / 整数。

  • freq (Union[DateOffset, int, str]) – 频率 / 步长。

返回

在给定频率 freq 下,endstart 之间的步数/周期数。

返回类型

int

示例

>>> n_steps_between(start=pd.Timestamp("2000-01-01"), end=pd.Timestamp("2000-03-01"), freq="ME")
2
>>> n_steps_between(start=0, end=2, freq=1)
2
>>> n_steps_between(start=0, end=2, freq=2)
1
darts.utils.utils.random_method(decorated)[source]

可用于类中任何方法,提供随机上下文的装饰器。

该装饰器将在对象上存储 _random_instance 属性,以便持久化后续对 RNG 的调用。

这等同于 darts.utils.torch.random_method,但适用于非 torch 模型。

参数

decorated (Callable[…, ~T]) – 在隔离的 torch 随机上下文中运行的方法。

返回类型

Callable[…, ~T]

darts.utils.utils.sample_from_quantiles(vals, quantiles, num_samples)[source]

使用线性插值从分位数预测生成 num_samples 个样本。生成的样本的分位数值应接近分位数预测。对于最低和最高分位数,将重复最低和最高分位数预测。

参数
  • vals (ndarray) – 分位数预测/值的 numpy 数组。可以是二维数组(n 时间点,n 成分 * n 分位数),或三维数组(n 时间点,n 成分,n 分位数)。在二维情况下,顺序首先按列升序,然后按分位数升序 (comp_0_q_0, comp_0_q_1, … comp_n_q_m)

  • quantiles (ndarray) – 分位数的 numpy 数组。

  • num_samples (int) – 要生成的样本数量。

darts.utils.utils.slice_index(index, start, end)[source]

返回与输入 index 类型相同的新索引,包含 startend 之间的值(包含)。如果 start 和 end 不在索引中,则使用最接近的值代替。start 和 end 值可以是整数(此时被解释为索引),或 pd.Timestamps(此时被解释为实际时间戳)。

参数
  • index (Union[RangeIndex, DatetimeIndex]) – 要切片的索引。

  • start (Union[int, Timestamp]) – 返回索引的起始点。

  • end (Union[int, Timestamp]) – 返回索引的结束点。

返回

与输入 index 类型相同的新索引,但仅包含 startend 之间的值。

返回类型

Union[pd.RangeIndex, pd.DatetimeIndex]