文件 | 函数
分位数

文件

文件  quantiles.hpp
 

函数

std::unique_ptr< cudf::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())
 计算插值分位数。 更多...
 
std::unique_ptr< cudf::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())
 返回输入表中对应于请求分位数的行。 更多...
 
std::unique_ptr< cudf::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 列的近似百分位数。 更多...
 

详细描述

函数文档

◆ percentile_approx()

std::unique_ptr<> cudf::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 中指定的百分比数量。

参数
inputtdigest 输入数据。每行一个 tdigest
percentiles期望的百分位数,范围在 [0, 1]
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回列的设备内存的设备内存资源
异常
cudf::logic_error如果 input 不是有效的 tdigest 列。
cudf::logic_error如果 percentiles 不是 FLOAT64 列。
返回值
包含请求的百分位数(FLOAT64 类型)的 LIST 列

◆ quantile()

std::unique_ptr<> cudf::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 中指定的插值策略,通过插值分位数所在的值之间来计算指定的分位数。

参数
[in]input用于计算分位数值的列
[in]q指定的分位数,范围在 [0, 1]
[in]interp用于在指定分位数相邻的值之间进行选择的策略。
[in]ordered_indices包含 input 的排序顺序的列。如果该列为空,则所有 input 值按现有顺序使用。索引必须在 [0, input.size()) 范围内,但不要求是唯一的。未被该列索引的值将被忽略。
[in]exact如果为 true,返回 double 类型。如果为 false,返回与输入相同的类型。
[in]stream用于设备内存操作和内核启动的 CUDA 流
[in]mr用于分配返回列的设备内存的设备内存资源
返回值
指定分位数的列,不可确定的值用 null 表示

◆ quantiles()

std::unique_ptr<> cudf::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_precedencenull 与其他元素比较时期望的顺序
stream用于设备内存操作和内核启动的 CUDA 流
mr用于分配返回表的设备内存的设备内存资源
返回值
指定分位数的表,不可确定的值用 null 表示
异常
cudf::logic_error如果 interp 是算术插值策略
cudf::logic_error如果 input 为空