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
。