Box-Cox 变换器¶
- class darts.dataprocessing.transformers.boxcox.BoxCox(name='BoxCox', lmbda=None, optim_method='mle', global_fit=False, n_jobs=1, verbose=False)[source]¶
- 基类: - FittableDataTransformer,- InvertibleDataTransformer- Box-Cox 数据变换器。 - 有关 Box-Cox 变换的更多信息,请参阅 [1]。 - 该变换独立应用于时间序列的每个维度(分量)。对于随机序列,它对所有样本进行联合处理,有效地合并一个分量的所有样本以计算变换。 - 注意事项 - 该定标器不会对序列的静态协变量进行缩放。这必须在构建序列之前完成,或者稍后通过提取协变量、变换值然后再将它们重新应用到序列。有关此内容,请参阅 TimeSeries 属性 TimeSeries.static_covariates 和方法 TimeSeries.with_static_covariates() - 参数
- name ( - str) – 变换器的特定名称
- lmbda ( - Union[- float,- Sequence[- float],- Sequence[- Sequence[- float]],- None]) – Box-Cox 变换的参数 \(\lambda\)。如果给定单个浮点数,所有序列的所有维度都将使用相同的 \(\lambda\) 值。如果给定序列,序列中每个分量对应一个值。如果给定序列的序列,则所有序列的每个分量对应一个值。如果给定 None,将使用- scipy.stats.boxcox_normmax()并设置- method=optim_method自动为(每个时间序列的每个维度)找到最佳的 \(\lambda\) 值。
- optim_method ( - Literal[‘mle’, ‘pearsonr’]) – 指定用于查找 lmbda 参数最佳值的方法。可以是 ‘mle’ 或 ‘pearsonr’。如果 lmbda 不是 None,则忽略此参数。
- global_fit ( - bool) – 可选参数,指示是否应使用传递给 fit() 方法的所有 TimeSeries 来拟合一组参数,或者是否应独立地为每个提供的 TimeSeries 拟合一组不同的参数。如果为 True,则将一个 Sequence[TimeSeries] 传递给 ts_fit,并使用所有提供的 TimeSeries 拟合一组参数。如果为 False,则将每个 TimeSeries 分别传递给 ts_fit,并且为每个拟合操作生成一组不同的拟合参数。有关更多详细信息,请参阅 FittableDataTransformer 文档。
- n_jobs ( - int) – 并行运行的任务数量。仅当输入为- Sequence[TimeSeries]时才会创建并行任务,以并行处理不同的- TimeSeries。默认为 1 (顺序执行)。将参数设置为 -1 表示使用所有可用的处理器。注意:对于少量数据,并行化开销可能会增加总所需时间。
- verbose ( - bool) – 是否打印操作进度
 
 - 示例 - >>> from darts.datasets import AirPassengersDataset >>> from darts.dataprocessing.transformers import BoxCox >>> series = AirPassengersDataset().load() >>> transformer = BoxCox(lmbda=0.2) >>> series_transformed = transformer.fit_transform(series) >>> print(series_transformed.head()) <TimeSeries (DataArray) (Month: 5, component: 1, sample: 1)> array([[[7.84735157]], [[7.98214351]], [[8.2765364 ]], [[8.21563229]], [[8.04749318]]]) Coordinates: * Month (Month) datetime64[ns] 1949-01-01 1949-02-01 ... 1949-05-01 * component (component) object '#Passengers' Dimensions without coordinates: sample - 参考资料 - 属性 - 数据变换器的名称。 - 方法 - apply_component_mask(series[, ...])- 从 series 中提取由 component_mask 指定的分量 - fit(series, *args[, component_mask])- 通过调用用户实现的 ts_fit 方法,将变换器拟合到(一个或多个)TimeSeries。 - fit_transform(series, *args[, component_mask])- 将变换器拟合到(一个或多个)序列,并返回变换后的输入。 - inverse_transform(series, *args[, ...])- 通过调用用户实现的 ts_inverse_transform 方法,对(一个或多个)序列进行逆变换。 - set_n_jobs(value)- 设置并行运行的处理器数量。仅当输入为 - Sequence[TimeSeries]时才会创建并行任务,以并行处理不同的- TimeSeries。默认为 1 (顺序执行)。将参数设置为 -1 表示使用所有可用的处理器。注意:对于少量数据,并行化开销可能会增加总所需时间。- set_verbose(value)- 设置详细输出状态。 - stack_samples(vals)- 从 TimeSeries 或 TimeSeries 的 array_values 创建形状为 (n_timesteps * n_samples, n_components) 的数组。 - transform(series, *args[, component_mask, ...])- 通过调用用户实现的 ts_transform 方法,对(一个或多个)序列进行变换。 - ts_fit(series, params, *args, **kwargs)- 调用 - fit()时将应用于每个序列的函数。- ts_inverse_transform(series, params, **kwargs)- 调用 - inverse_transform()时将应用于每个序列的函数。- ts_transform(series, params, **kwargs)- 调用 - transform()时将应用于每个序列的函数。- unapply_component_mask(series, vals[, ...])- 在 apply_component_mask 方法中将之前由 component_mask 移除的分量添加回来。 - unstack_samples(vals[, n_timesteps, ...])- 将由 stack_samples 返回的 2D 数组重塑回形状为 (n_timesteps, n_components, n_samples) 的数组;这“撤销”了 stack_samples 的重塑操作。 - static apply_component_mask(series, component_mask=None, return_ts=False)¶
- 从 series 中提取由 component_mask 指定的分量 - 参数
- series ( - TimeSeries) – 要馈入变换器的输入 TimeSeries。
- component_mask ( - Optional[- ndarray,- None]) – 可选参数,一个形状为 (n_components, 1) 的 np.ndarray 布尔掩码,指定要从 series 中提取哪些分量。仅当 component_mask[i] = True 时,才保留 series 的第 i 个分量。如果未指定,则不执行掩码操作。
- return_ts ( - bool) – 可选参数,指定应返回 TimeSeries 对象,而不是 np.ndarray。
 
- 返回值
- 保留由 component_mask 指定的分量的 TimeSeries 对象(如果 return_ts = True)或 np.ndarray(如果 return_ts = False)。 
- 返回类型
- masked 
 
 - fit(series, *args, component_mask=None, **kwargs)¶
- 通过调用用户实现的 ts_fit 方法,将变换器拟合到(一个或多个)TimeSeries。 - 由 ts_fit 返回的拟合参数存储在 - self._fitted_params属性中。如果将 Sequence[TimeSeries] 作为 series 数据传入,则会发生以下两种情况之一:- 1. 如果 global_fit 属性设置为 False,则会为 Sequence 中的每个 TimeSeries 独立拟合一组不同的参数。在这种情况下,此函数会自动将此拟合过程并行化到所有传入的多个 TimeSeries 上。2. 如果 global_fit 属性设置为 True,则将使用所有 TimeSeries 对象拟合一组参数。 - 参数
- series ( - Union[- TimeSeries,- Sequence[- TimeSeries]]) – 用于拟合变换器的(一个或多个)序列。
- args – - ts_fit()方法的额外位置参数
- component_mask (Optional[np.ndarray] = None) – 可选参数,一个长度为 - series.n_components的 1-D 布尔 np.ndarray,指定应拟合底层 series 的哪些分量。
- kwargs – - ts_fit()方法的额外关键字参数
 
- 返回值
- 已拟合的变换器。 
- 返回类型
 
 - fit_transform(series, *args, component_mask=None, **kwargs)¶
- 将变换器拟合到(一个或多个)序列,并返回变换后的输入。 - 参数
- series ( - Union[- TimeSeries,- Sequence[- TimeSeries]]) – 要变换的(一个或多个)序列。
- args – 传递给 - ts_transform()和- ts_fit()方法的额外位置参数。
- component_mask (Optional[np.ndarray] = None) – 可选参数,一个长度为 - series.n_components的 1-D 布尔 np.ndarray,指定应拟合和应用于底层 series 的哪些分量。
- kwargs – 传递给 - ts_transform()和- ts_fit()方法的额外关键字参数。
 
- 返回值
- 变换后的数据。 
- 返回类型
- Union[TimeSeries, Sequence[TimeSeries]] 
 
 - inverse_transform(series, *args, component_mask=None, series_idx=None, **kwargs)¶
- 通过调用用户实现的 ts_inverse_transform 方法,对(一个或多个)序列进行逆变换。 - 如果输入数据是序列或列表的列表,此函数会同时并行处理序列中的多个序列的变换。此外,如果在实例化 InvertibleDataTransformer 时将 mask_components 属性设置为 True,则任何提供的 component_mask 将自动应用于每个输入 TimeSeries;有关分量掩码的更多详细信息,请参阅“注意事项”。 - 任何额外指定的 *args 和 **kwargs 将自动传递给 ts_inverse_transform。 - 参数
- series ( - Union[- TimeSeries,- Sequence[- TimeSeries],- Sequence[- Sequence[- TimeSeries]]]) – 要逆变换的序列。如果是单个 TimeSeries,返回单个序列。如果是 TimeSeries 序列,返回一个序列列表。这些序列的顺序应与用于拟合变换器的序列顺序相同。如果是 TimeSeries 列表的列表,返回一个序列列表的列表。例如,这可能是使用多个序列时 ForecastingModel.historical_forecasts() 的输出。每个内部列表应包含与同一序列相关的 TimeSeries。内部列表的顺序应与用于拟合变换器的序列顺序相同。
- args – - ts_inverse_transform()方法的额外位置参数
- component_mask (Optional[np.ndarray] = None) – 可选参数,一个长度为 - series.n_components的 1-D 布尔 np.ndarray,指定逆变换应考虑底层 series 的哪些分量。
- series_idx ( - Union[- int,- Sequence[- int],- None]) – 可选参数,每个序列在其用于拟合变换器的序列中的索引(用于检索相应的变换器参数)。
- kwargs – - ts_inverse_transform()方法的额外关键字参数
 
- 返回值
- 逆变换后的数据。 
- 返回类型
- Union[TimeSeries, List[TimeSeries], List[List[TimeSeries]]] 
 - 注意事项 - 如果在实例化 InvertibleDataTransformer 时将 mask_components 属性设置为 True,则任何提供的 component_mask 将自动应用于每个输入 TimeSeries 进行变换;component_mask 只是形状为 (series.n_components,) 的布尔数组,指定每个 series 的哪些分量应使用 ts_inverse_transform 进行变换,哪些不应。如果 component_mask[i] 为 True,则每个 series 的第 i 个分量将由 ts_inverse_transform 进行变换。相反,如果 component_mask[i] 为 False,则在传递给 ts_inverse_transform 之前,每个 series 的第 i 个分量将被移除;在变换这个掩码序列后,未变换的第 i 个分量将被“添加回”输出中。请注意,只有当 ts_inverse_transform 不改变每个序列的时间步数时,才能执行自动 component_mask 操作;如果发生这种情况,则无法沿分量轴将变换后和未变换的分量连接回来。 - 如果在实例化 InvertibleDataTransformer 时将 mask_components 设置为 False,则任何提供的 component_masks 将作为关键字参数传递给 ts_inverse_transform;用户随后可以手动指定如何将 component_mask 应用于每个序列。 
 - property name¶
- 数据变换器的名称。 
 - 数据变换器的名称。
- 设置并行运行的处理器数量。仅当输入为 - Sequence[TimeSeries]时才会创建并行任务,以并行处理不同的- TimeSeries。默认为 1 (顺序执行)。将参数设置为 -1 表示使用所有可用的处理器。注意:对于少量数据,并行化开销可能会增加总所需时间。- 参数
- set_n_jobs(value)¶ 
 
 - 
value (int) – 新的 n_jobs 值。设置为 -1 表示使用所有可用的核心。
- 设置详细输出状态。 - set_verbose(value)¶ - 参数
- True 表示启用有关定标器操作进度的详细报告,False 表示不提供额外信息。 
 
 - 
value (bool) – 新的详细输出状态
- 从 TimeSeries 或 TimeSeries 的 array_values 创建形状为 (n_timesteps * n_samples, n_components) 的数组。 - static stack_samples(vals)¶ - 返回数组的每一列对应于序列的一个分量(维度),通过将与该分量相关的所有样本连接在一起形成。更具体地说,第 i 列由连接 [component_i_sample_1, component_i_sample_2, …, component_i_sample_n] 形成。 - 参数
- 堆叠对于实现将完全相同的变化应用于时间序列中每个时间步长的变换非常有用。在这种情况下,每个分量的样本可以堆叠到单个列中,然后可以将变换应用于每个列,从而将变换“向量化”到该分量的所有样本上;然后可以使用 unstack_samples 方法重塑输出。对于依赖于 time_index 或观测时间顺序的变换,不应使用堆叠。 
- 返回值
- vals ( - Union[- ndarray,- TimeSeries]) – 要“堆叠”的形状为 (n_timesteps, n_components, n_samples) 的 Timeseries 或 np.ndarray。
- 返回类型
- 形状为 (n_timesteps * n_samples, n_components) 的 np.ndarray,其中第 i 列由连接 vals 中第 i 个分量的所有样本形成。 
 
 - stacked
- 通过调用用户实现的 ts_transform 方法,对(一个或多个)序列进行变换。 - transform(series, *args, component_mask=None, series_idx=None, **kwargs)¶ - 如果输入数据是 - Sequence[TimeSeries],此函数会同时并行处理序列中多个序列的变换。此外,如果在实例化 BaseDataTransformer 时将 mask_components 属性设置为 True,则任何提供的 component_mask 将自动应用于每个输入 TimeSeries;有关分量掩码的更多详细信息,请参阅“注意事项”。- 参数
- 任何额外指定的 *args 和 **kwargs 将自动传递给 ts_transform。 
- series ( - Union[- TimeSeries,- Sequence[- TimeSeries]]) – 要变换的(一个或多个)序列。
- args – 每次调用 - ts_transform()方法的额外位置参数
- series_idx ( - Union[- int,- Sequence[- int],- None]) – 可选参数,每个序列在其用于拟合变换器的序列中的索引(用于检索相应的变换器参数)。
- component_mask (Optional[np.ndarray] = None) – 可选参数,一个长度为 - series.n_components的 1-D 布尔 np.ndarray,指定变换应考虑底层 series 的哪些分量。如果在实例化 BaseDataTransformer 时将 mask_components 属性设置为 True,则分量掩码将自动应用于每个 TimeSeries 输入。否则,component_mask 将作为额外关键字参数提供给 ts_transform。有关更多详细信息,请参阅“注意事项”。
 
- 返回值
- 变换后的数据。 
- 返回类型
- kwargs – 每次调用 - ts_transform()方法的额外关键字参数
 - 注意事项 - Union[TimeSeries, List[TimeSeries]] - 如果在实例化 BaseDataTransformer 时将 mask_components 属性设置为 True,则任何提供的 component_mask 将自动应用于每个输入 TimeSeries 进行变换;component_mask 只是形状为 (series.n_components,) 的布尔数组,指定每个 series 的哪些分量应使用 ts_transform 进行变换,哪些不应。如果 component_mask[i] 为 True,则每个 series 的第 i 个分量将由 ts_transform 进行变换。相反,如果 component_mask[i] 为 False,则在传递给 ts_transform 之前,每个 series 的第 i 个分量将被移除;在变换这个掩码序列后,未变换的第 i 个分量将被“添加回”输出中。请注意,只有当 ts_transform 不改变每个序列的时间步数时,才能执行自动 component_mask 操作;如果发生这种情况,则无法沿分量轴将变换后和未变换的分量连接回来。 
 - 如果在实例化 BaseDataTransformer 时将 mask_components 设置为 False,则任何提供的 component_masks 将作为关键字参数传递给 ts_transform;用户随后可以手动指定如何将 component_mask 应用于每个序列。
- 调用 - fit()时将应用于每个序列的函数。- static ts_fit(series, params, *args, **kwargs)[source]¶ - 如果 global_fit 属性设置为 False,则 ts_fit 应接受一个 TimeSeries 作为第一个参数,并返回一组适用于该单个 TimeSeries 的参数。相反,如果 global_fit 属性设置为 True,则 ts_fit 应接受一个 Sequence[TimeSeries],并返回一组适用于所有提供的 TimeSeries 的参数。所有这些参数将存储在 - self._fitted_params中,稍后可在变换步骤中使用。- 无论 global_fit 属性设置为 True 还是 False,ts_fit 也应接受一个包含固定参数值的字典作为第二个参数(例如,`params[‘fixed’] 包含数据变换器的固定参数)。 - 传递给 fit 方法的任何额外位置参数和/或关键字参数将作为位置参数/关键字参数传递给 ts_fit。 - 此方法未在基类中实现,必须在派生类中实现。 - 参数
- 如果在派生类中添加更多输入参数,则应相应地重新定义 - _fit_iterator(),以便为此函数提供必要的参数(有关更多详细信息,请参阅- _fit_iterator())。
- (Union[TimeSeries (series) – 拟合定标器的 TimeSeries。 
 
 - 注意事项 - Sequence[TimeSeries]]) – 拟合定标器的 TimeSeries。 - 返回类型
- 此方法被设计为静态方法而不是实例方法,以便在定标器实例存储非可忽略量的数据时也能实现高效的并行化。使用实例方法意味着通过多个进程复制实例的数据,这很容易引入瓶颈并抵消并行化带来的好处。 
 
 - 
Union[Sequence[float],Series]
- 调用 - inverse_transform()时将应用于每个序列的函数。- static ts_inverse_transform(series, params, **kwargs)[source]¶ - 该函数必须将一个 TimeSeries对象作为第一个参数,并将包含变换的固定和/或拟合参数的字典作为第二个参数;然后该函数应返回一个逆变换后的TimeSeries对象(即 ts_inverse_transform 应该“撤销” ts_transform 执行的变换)。
- 的 params 字典最多可以包含两个键 
 - 1. params[‘fixed’] 存储变换的固定参数(即在调用 super.__init__() 之前在最子类中的 __init__ 方法中定义的属性);params[‘fixed’] 本身是一个字典,其键是固定参数属性的名称。例如,如果在最子类中将 _my_fixed_param 定义为属性,则可以通过 params[‘fixed’][‘_my_fixed_param’] 访问此固定参数值。2. 如果变换继承自 - FittableDataTransformer类,则 params[‘fitted’] 将存储变换的拟合参数;拟合参数仅仅是 ts_fit 函数返回的输出(无论这些输出是什么)。有关拟合参数的更多详细信息,请参阅- FittableDataTransformer。- 传递给 transform 方法的任何位置参数/关键字参数都将作为位置参数/关键字参数传递给 ts_inverse_transform;因此,如果位置参数/关键字参数传递给 transform,ts_inverse_transform 也应接受 *args 和/或 **kwargs。请注意,如果在实例化 InvertibleDataTransformer 时将 mask_components 属性设置为 False,则提供给 transform 的 component_mask 将作为额外关键字参数传递给 ts_inverse_transform。 - InvertibleDataTransformer 继承自 BaseDataTransformer 类,该类包含一些在实现 ts_inverse_transform 函数时可能证明有用的辅助方法 - 传递给 fit 方法的任何额外位置参数和/或关键字参数将作为位置参数/关键字参数传递给 ts_fit。 - 参数
- 1. apply_component_mask 和 unapply_component_mask 方法,分别将 component_mask 应用和“解除应用”到 TimeSeries;如果在实例化 InvertibleDataTransformer 时将 mask_component 属性设置为 True,这些方法会在 transform 中自动调用,但如果你将 mask_components 设置为 False 并希望手动指定如何将 component_mask 应用于 TimeSeries,你可能需要手动调用它们。2. stack_samples 方法,它沿分量轴堆叠 TimeSeries 中的所有样本,使 TimeSeries 的形状从 (n_timesteps, n_components, n_samples) 变为 (n_timesteps, n_components * n_samples)。如果正在实现逐点逆变换(即时间 t 的值的变换仅取决于该时间 t 的序列值),则此堆叠非常有用。变换后,可以使用 unstack_samples 方法“解除堆叠”已堆叠的 TimeSeries。 
- series ( - TimeSeries) – 要变换的序列。
- params ( - Mapping[- str,- Any]) – 包含变换函数参数的字典。固定参数(即在调用 super.__init__() 之前在变换的最子类中定义的属性)存储在 ‘fixed’ 键下。如果变换继承自 FittableDataTransformer 类,则变换的拟合参数(即 ts_fit 返回的值)存储在 ‘fitted’ 键下。
- args – 提供给 inverse_transform 的任何额外关键字参数。 
 
 - 注意事项 - Sequence[TimeSeries]]) – 拟合定标器的 TimeSeries。 
- 该函数必须将一个 
 - TimeSeries
- 调用 - transform()时将应用于每个序列的函数。- 传递给 fit 方法的任何额外位置参数和/或关键字参数将作为位置参数/关键字参数传递给 ts_fit。 - static ts_transform(series, params, **kwargs)[source]¶ - 该函数必须将一个 TimeSeries对象作为第一个参数,并将包含变换的固定和/或拟合参数的字典作为第二个参数;然后该函数应返回一个逆变换后的TimeSeries对象(即 ts_inverse_transform 应该“撤销” ts_transform 执行的变换)。
- 的 params 字典最多可以包含两个键 
 - 该函数必须将一个 - TimeSeries对象作为第一个参数,并将包含变换的固定和/或拟合参数的字典作为第二个参数;然后该函数应返回一个变换后的- TimeSeries对象。- 传递给 transform 方法的任何位置参数/关键字参数都将作为位置参数/关键字参数传递给 ts_transform;因此,如果位置参数/关键字参数传递给 transform,ts_transform 也应接受 *args 和/或 **kwargs。请注意,如果在实例化 BaseDataTransformer 时将 mask_components 属性设置为 False,则提供给 transform 的 component_mask 将作为额外关键字参数传递给 ts_transform。 - BaseDataTransformer 类包含一些在实现 ts_transform 函数时可能证明有用的辅助方法 - 参数
- 1. apply_component_mask 和 unapply_component_mask 方法,分别将 component_mask 应用和“解除应用”到 TimeSeries;如果在实例化 InvertibleDataTransformer 时将 mask_component 属性设置为 True,这些方法会在 transform 中自动调用,但如果你将 mask_components 设置为 False 并希望手动指定如何将 component_mask 应用于 TimeSeries,你可能需要手动调用它们。2. stack_samples 方法,它沿分量轴堆叠 TimeSeries 中的所有样本,使 TimeSeries 的形状从 (n_timesteps, n_components, n_samples) 变为 (n_timesteps, n_components * n_samples)。如果正在实现逐点逆变换(即时间 t 的值的变换仅取决于该时间 t 的序列值),则此堆叠非常有用。变换后,可以使用 unstack_samples 方法“解除堆叠”已堆叠的 TimeSeries。 
- series ( - TimeSeries) – 要变换的序列。
- 1. apply_component_mask 和 unapply_component_mask 方法,分别将 component_mask 应用和“解除应用”到 TimeSeries;如果在实例化 BaseDataTransformer 时将 mask_component 属性设置为 True,这些方法会在 transform 中自动调用,但如果你将 mask_components 设置为 False 并希望手动指定如何将 component_mask 应用于 TimeSeries,你可能需要手动调用它们。2. stack_samples 方法,它沿分量轴堆叠 TimeSeries 中的所有样本,使 TimeSeries 的形状从 (n_timesteps, n_components, n_samples) 变为 (n_timesteps, n_components * n_samples)。如果正在实现逐点变换(即时间 t 的值的变换仅取决于该时间 t 的序列值),则此堆叠非常有用。变换后,可以使用 unstack_samples 方法“解除堆叠”已堆叠的 TimeSeries。 
- args – 调用时除了 series 外提供的任何位置参数 
 
 - 注意事项 - kwargs – 提供给 transform 的任何额外关键字参数。请注意,如果在实例化 BaseDataTransformer 时将 mask_component 属性设置为 False,则 component_mask 将作为关键字参数传递。 
- 该函数必须将一个 
 - 此方法被设计为静态方法而不是实例方法,以便在定标器实例存储非可忽略量的数据时也能实现高效的并行化。使用实例方法意味着通过多个进程复制实例的数据,这很容易引入瓶颈并抵消并行化带来的好处。
- 在 apply_component_mask 方法中将之前由 component_mask 移除的分量添加回来。 - 参数
- static unapply_component_mask(series, vals, component_mask=None)¶ 
- series ( - Union[- TimeSeries,- Sequence[- TimeSeries]]) – 已馈入变换器的输入 TimeSeries。
- vals ( - Union[- ndarray,- Sequence[- ndarray],- TimeSeries,- Sequence[- TimeSeries]]]) – 要“解除掩码”的 np.ndarray 或 TimeSeries
 
- 返回值
- component_mask ( - Optional[- ndarray,- None]) – 可选参数,一个形状为 (n_components, 1) 的 np.ndarray 布尔掩码,指定从 series 中提取了哪些分量。如果给定,则将 vals 插回原始数组的列中。如果未指定,则不执行“解除掩码”操作。
- 返回类型
- 将之前由 component_mask 移除的分量“添加回”后的 TimeSeries(如果 vals 是 TimeSeries)或 np.ndarray(如果 vals 是 np.ndarray)。 
 
 - unmasked
- static unstack_samples(vals, n_timesteps=None, n_samples=None, series=None)¶ - 参数
- 将由 stack_samples 返回的 2D 数组重塑回形状为 (n_timesteps, n_components, n_samples) 的数组;这“撤销”了 stack_samples 的重塑操作。必须指定 n_components、n_samples 或 series 之一。 
- vals ( - ndarray) – 要“解除堆叠”的形状为 (n_timesteps * n_samples, n_components) 的 np.ndarray。
- n_timesteps ( - Optional[- int,- None]) – 可选参数,最初传递给 stack_samples 的数组中的时间步数。如果指定了 series,则无需提供此参数。
- n_samples ( - Optional[- int,- None]) – 可选参数,最初传递给 stack_samples 的数组中的样本数。如果指定了 series,则无需提供此参数。
 
- 返回值
- series ( - Optional[- TimeSeries,- None]) – 可选参数,用于创建 vals 的 TimeSeries 对象;n_samples 将从此推断。
- 返回类型
- 形状为 (n_timesteps, n_components, n_samples) 的 np.ndarray。