标记分箱#

分箱 标记

枚举

enum class inclusive#

用于定义分箱是否包含其边界点的枚举。

enumerator YES#
enumerator NO#

函数

std::unique_ptr<column> label_bins(column_view const &input, column_view const &left_edges, inclusive left_inclusive, column_view const &right_edges, inclusive right_inclusive, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

根据元素在指定分箱中的归属来标记元素。

分箱 ileft_edges[i], right_edges[i] 定义。边界是否包含由 left_inclusiveright_inclusive 分别确定。

如果 value[j] 包含在范围 left_edges[i], right_edges[i] 中(具有指定的包含性)并且 label[j] == i,则值 input[j] 属于分箱 i。如果 input[j] 不属于任何分箱,则 label[j] 为 NULL。

注意事项

  • 如果提供了空的边界集,则 input 中的所有元素都标记为 NULL。

  • input 中的 NULL 元素不属于任何分箱,其对应的标记为 NULL。

  • input 中的 NaN 元素不属于任何分箱,其对应的标记为 NULL。

  • 必须按单调递增顺序提供分箱,否则行为未定义。

  • 如果两个或多个分箱重叠,行为未定义。

抛出:
  • cudf::logic_error – 如果违反了 input.type() == left_edges.type() == right_edges.type()

  • cudf::logic_error – 如果 left_edges.size() != right_edges.size()

  • cudf::logic_error – 如果 left_edges.has_nulls()right_edges.has_nulls()

参数:
  • input – 根据指定分箱标记的输入元素。

  • left_edges – 每个分箱左边界的值。

  • left_inclusive – 左边界是否包含。

  • right_edges – 每个分箱右边界的值。

  • right_inclusive – 右边界是否包含。

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

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

返回:

根据指定分箱,input 中元素的整数标记。