列分位数#

group column_quantiles

函数

std::unique_ptr<column> quantile(column_view const &input, std::vector<double> const &q, interpolation interp = interpolation::LINEAR, column_view const &ordered_indices = {}, bool exact = true, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

计算带有插值的分位数。

通过使用在interp中指定的插值策略,在它们之间的值进行插值来计算指定的分位数。

Parameters:
  • input[in] 用于计算分位数值的列

  • q[in] 指定的分位数,范围在 [0, 1] 之间

  • interp[in] 用于在指定分位数附近的值之间进行选择的策略。

  • ordered_indices[in] 包含input排序顺序的列。如果该列为空,则按现有顺序使用所有input值。索引必须在[0, input.size())范围内,但不要求唯一。未在此列中索引的值将被忽略。

  • exact[in] 如果为真,返回双精度类型。如果为假,返回与输入相同的类型。

  • stream[in] 用于设备内存操作和内核启动的CUDA流

  • mr[in] 用于分配返回列的设备内存的设备内存资源

Returns:

指定分位数的列,对于无法确定的值显示为null

std::unique_ptr<table> quantiles(table_view const &input, std::vector<double> const &q, interpolation interp = interpolation::NEAREST, cudf::sorted is_input_sorted = sorted::NO, std::vector<order> const &column_order = {}, std::vector<null_order> const &null_precedence = {}, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

返回与请求的分位数对应的输入行。

分位数是将数据集的范围划分为连续区间的切点。例如:四分位数是将数据集划分为四个相等大小的组的三个切点。参见 https://en.wikipedia.org/wiki/Quantile

用于收集行的索引是通过在所需分位数两侧的索引之间进行插值来计算的。由于某些列可能是非算术的,行之间的插值仅限于非算术策略。

非算术插值策略包括HIGHER、LOWER和NEAREST。

分位数 <= 0 对应于第 0 行。(第一个)分位数 >= 1 对应于第 input.size() - 1 行。(最后一个)

Parameters:
  • input – 用于计算分位行的表

  • q – 期望的分位数范围在 [0, 1] 之间

  • interp – 用于在所需分位数两侧的两行之间进行选择的策略。

  • is_input_sorted – 表示输入是否已预先排序

  • column_order – 每列所需的排序顺序

  • null_precedence – 空值与其他元素相比的期望顺序

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于分配返回表的设备内存的设备内存资源

Throws:
Returns:

指定分位数的表格,对于无法确定的值显示为null

std::unique_ptr<column> percentile_approx(tdigest::tdigest_column_view const &input, column_view const &percentiles, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

在输入的tdigest列上计算近似百分位数。

tdigest (https://arxiv.org/pdf/1902.04023.pdf) 列是专门由 TDIGEST 和 MERGE_TDIGEST 聚合生成的。这些列表示可以查询分位数信息的非常大的输入数据集的压缩表示。

生成一个LIST列,其中每一行i表示从inputi对应的tdigest查询的输出。每个输出列表的长度是percentages中指定的百分比数量。

Parameters:
  • input – tdigest 输入数据。每行一个 tdigest

  • percentiles – 所需的百分位数,范围在 [0, 1] 之间

  • stream – 用于设备内存操作和内核启动的CUDA流

  • mr – 用于分配返回列的设备内存的设备内存资源

Throws:
Returns:

包含请求的百分位数值的LIST列,类型为FLOAT64