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.nanNonepd.NaT 视为空值。默认值为 True

返回:

标准差结果。对于不同的 on 值,返回结果不同:- on=None:包含所有列的列标准差的字典,- on="col":表示列 "col" 中所有项的标准差的标量,- on=["col_1", ..., "col_n"]:包含所提供列的列标准差的 n 列字典。如果数据集为空,所有值均为空。如果 ignore_nullsFalse 且任何值为空,则输出为 None