ray.data.预处理器.连接器#
- class ray.data.preprocessors.Concatenator(output_column_name: str = 'concat_out', include: List[str] | None = None, exclude: str | List[str] | None = None, dtype: numpy.dtype | None = None, raise_if_missing: bool = False)[源代码]#
基类:
Preprocessor
将数值列合并为一个
TensorDtype
类型的列。此预处理器连接数值列并将结果存储在新列中。新列包含形状为 \((m,)\) 的
TensorArrayElement
对象,其中 \(m\) 是连接的列数。连接后的 \(m\) 列在连接后被删除。示例
>>> import numpy as np >>> import pandas as pd >>> import ray >>> from ray.data.preprocessors import Concatenator
Concatenator
将数值列合并为一个TensorDtype
列。>>> df = pd.DataFrame({"X0": [0, 3, 1], "X1": [0.5, 0.2, 0.9]}) >>> ds = ray.data.from_pandas(df) >>> concatenator = Concatenator() >>> concatenator.fit_transform(ds).to_pandas() concat_out 0 [0.0, 0.5] 1 [3.0, 0.2] 2 [1.0, 0.9]
默认情况下,创建的列名为
"concat_out"
,但您可以指定不同的名称。>>> concatenator = Concatenator(output_column_name="tensor") >>> concatenator.fit_transform(ds).to_pandas() tensor 0 [0.0, 0.5] 1 [3.0, 0.2] 2 [1.0, 0.9]
有时,您可能不想连接数据集中的所有列。在这种情况下,您可以使用
exclude
参数排除列。>>> df = pd.DataFrame({"X0": [0, 3, 1], "X1": [0.5, 0.2, 0.9], "Y": ["blue", "orange", "blue"]}) >>> ds = ray.data.from_pandas(df) >>> concatenator = Concatenator(exclude=["Y"]) >>> concatenator.fit_transform(ds).to_pandas() Y concat_out 0 blue [0.0, 0.5] 1 orange [3.0, 0.2] 2 blue [1.0, 0.9]
或者,您可以使用
include
参数指定要连接的列。>>> concatenator = Concatenator(include=["X0", "X1"]) >>> concatenator.fit_transform(ds).to_pandas() Y concat_out 0 blue [0.0, 0.5] 1 orange [3.0, 0.2] 2 blue [1.0, 0.9]
注意,如果一个列同时存在于
include
和exclude
中,该列将被排除。>>> concatenator = Concatenator(include=["X0", "X1", "Y"], exclude=["Y"]) >>> concatenator.fit_transform(ds).to_pandas() Y concat_out 0 blue [0.0, 0.5] 1 orange [3.0, 0.2] 2 blue [1.0, 0.9]
默认情况下,连接的张量是输入列的公共
dtype
。然而,您也可以通过dtype
参数显式设置dtype
。>>> concatenator = Concatenator(include=["X0", "X1"], dtype=np.float32) >>> concatenator.fit_transform(ds) Dataset(num_rows=3, schema={Y: object, concat_out: TensorDtype(shape=(2,), dtype=float32)})
- 参数:
output_column_name – 新列的所需名称。默认为
"concat_out"
。include – 要连接的列的列表。如果为
None
,则连接所有列。exclude – 要从连接中排除的列的列表。如果某一列同时出现在
include
和exclude
中,则该列将从连接中排除。dtype – 要转换输出张量的
dtype
。如果未指定,dtype
将根据标准强制转换规则确定。raise_if_missing – 如果
True
,如果include
或exclude
中的任何列不存在,则会引发错误。默认为False
。
- 抛出:
ValueError – 如果
raise_if_missing
为True
,并且include
或exclude
中的某一列在数据集中不存在。
PublicAPI (alpha): 此API处于alpha阶段,可能在稳定之前发生变化。
方法
加载通过
self.serialize()
序列化的原始预处理器。将此预处理器适配到数据集。
将此预处理器适配到数据集,然后转换数据集。
批处理格式提示上游生产者尝试生成最佳块格式。
返回此预处理器的字符串序列化表示。
转换给定的数据集。
转换单个批次的数据。