ray.data.Dataset.std#
- Dataset.std(on: str | List[str] | None = None, ddof: int = 1, ignore_nulls: bool = True) Any | Dict[str, Any][源代码]#
计算一个或多个列的标准差。
备注
此方法使用 Welford 的在线方法进行累加器样式的标准差计算。此方法具有数值稳定性,并且可以在一次遍历中完成计算。这可能会与使用数值稳定性较差的两次遍历算法的 NumPy、Pandas 和 sklearn 产生不同的(但更准确的)结果。要了解更多信息,请参阅 维基百科文章。
备注
此操作将触发对此数据集执行的延迟转换。
备注
此操作要求所有输入在对象存储中具体化,以便执行。
示例
>>> import ray >>> round(ray.data.range(100).std("id", ddof=0), 5) 28.86607 >>> ray.data.from_items([ ... {"A": i, "B": i**2} ... for i in range(100) ... ]).std(["A", "B"]) {'std(A)': 29.011491975882016, 'std(B)': 2968.1748039269296}
- 参数:
on – 要聚合的列名或列名列表。
ddof – 自由度增量。计算中使用的除数是
N - ddof,其中N表示元素的数量。ignore_nulls – 是否忽略空值。如果
True,在计算标准差时忽略空值;如果False,当遇到空值时,输出为None。此方法将np.nan、None和pd.NaT视为空值。默认值为True。
- 返回:
标准差结果。对于不同的
on值,返回结果不同:-on=None:包含所有列的列标准差的字典,-on="col":表示列"col"中所有项的标准差的标量,-on=["col_1", ..., "col_n"]:包含所提供列的列标准差的 n 列字典。如果数据集为空,所有值均为空。如果ignore_nulls为False且任何值为空,则输出为None。