列分位数#
- group 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
中指定的插值策略来计算指定的分位数。- 参数:
input – [in] 用于计算分位数值的列
q – [in] 范围 [0, 1] 中指定的分位数
interp – [in] 用于在指定分位数附近的两个值之间进行选择的策略。
ordered_indices – [in] 包含
input
排序顺序的列。如果该列为空,则使用所有input
值现有的顺序。索引必须在 [0,input.size()
) 范围内,但不要求唯一。未被此列索引的值将被忽略。exact – [in] 如果为 true,返回双精度浮点数。如果为 false,返回与输入相同的类型。
stream – [in] 用于设备内存操作和内核启动的 CUDA 流
mr – [in] 用于分配返回列的设备内存的设备内存资源
- 返回:
指定分位数的列,不可确定的值为空值
-
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
行。(最后一个)- 参数:
input – 用于计算分位数行的表
q – 范围 [0, 1] 中期望的分位数
interp – 用于在期望分位数两侧的两个行之间进行选择的策略。
is_input_sorted – 指示输入是否已经预排序
column_order – 每列期望的排序顺序
null_precedence – 空值与其他元素相比期望的顺序
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回表的设备内存的设备内存资源
- 抛出异常:
cudf::logic_error – 如果
interp
是算术插值策略cudf::logic_error – 如果
input
为空
- 返回:
指定分位数的表,不可确定的值为空值
-
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
表示查询input
第i
行对应的 tdigest 得到的输出。每个输出列表的长度是percentages
中指定的百分比数量。- 参数:
input – tdigest 输入数据。每行一个 tdigest
percentiles – 范围 [0, 1] 中期望的百分位数
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回列的设备内存的设备内存资源
- 抛出异常:
cudf::logic_error – 如果
input
不是有效的 tdigest 列。cudf::logic_error – 如果
percentiles
不是 FLOAT64 列。
- 返回:
包含请求百分位数(FLOAT64 类型)的 LIST 列
-
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())#