重新排序紧凑型#
- group reorder_compact
枚举
函数
-
std::unique_ptr<table> drop_nulls(table_view const &input, std::vector<size_type> const &keys, cudf::size_type keep_threshold, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
过滤表格以移除具有阈值计数的空元素。
根据
keys中指定的列的有效性/空值来过滤input的行。给定一个输入 table_view,如果
keys的同一行i至少有keep_threshold个非空字段,则输入列中的行i将被复制到输出中。此操作是稳定的:输入顺序在输出中保持不变。
输入中的任何非空列都被视为全部非空。
input {col1: {1, 2, 3, null}, col2: {4, 5, null, null}, col3: {7, null, null, null}} keys = {0, 1, 2} // All columns keep_threshold = 2 output {col1: {1, 2} col2: {4, 5} col3: {7, null}}注意
如果
input.num_rows()为零,或者keys为空或没有空值,则不会出现错误,并且会返回一个空的table- Parameters:
input – [in] 要过滤的输入
table_viewkeys – [in] 表示来自
input的关键列的索引向量keep_threshold – [in] 保留行所需的最小非空字段数。
stream – [in] 用于设备内存操作和内核启动的CUDA流
mr – [in] 用于分配返回表的设备内存的设备内存资源
- Returns:
包含
input中所有行的表格,其中keys中至少有keep_threshold个非空字段。
-
std::unique_ptr<table> drop_nulls(table_view const &input, std::vector<size_type> const &keys, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
过滤表格以移除空元素。
根据
keys中指定的列的有效性/空值来过滤input的行。input {col1: {1, 2, 3, null}, col2: {4, 5, null, null}, col3: {7, null, null, null}} keys = {0, 1, 2} //All columns output {col1: {1} col2: {4} col3: {7}}与 drop_nulls 相同,但默认将 keep_threshold 设置为
keys中的列数。- Parameters:
input – [in] 要过滤的输入
table_viewkeys – [in] 表示来自
input的关键列的索引向量stream – [in] 用于设备内存操作和内核启动的CUDA流
mr – [in] 用于分配返回表的设备内存的设备内存资源
- Returns:
包含
input中所有行的表,其中keys列中没有空值。
-
std::unique_ptr<table> drop_nans(table_view const &input, std::vector<size_type> const &keys, cudf::size_type keep_threshold, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
过滤表格以移除超过阈值数量的NANs。
过滤
input的行,考虑在keys中指定的列的NANs。这些关键列必须是浮点类型。给定一个输入 table_view,如果
keys的同一行i至少有keep_threshold个非 NAN 元素,则输入列中的行i将被复制到输出中。此操作是稳定的:输入顺序在输出中保持不变。
input {col1: {1.0, 2.0, 3.0, NAN}, col2: {4.0, null, NAN, NAN}, col3: {7.0, NAN, NAN, NAN}} keys = {0, 1, 2} // All columns keep_threshold = 2 output {col1: {1.0, 2.0} col2: {4.0, null} col3: {7.0, NAN}}注意
如果
input.num_rows()为零,或者keys为空,不会报错,并且会返回一个空的table- Throws:
cudf::logic_error – 如果
keys列不是浮点类型。- Parameters:
input – [in] 要过滤的输入
table_viewkeys – [in] 表示来自
input的关键列的索引向量keep_threshold – [in] 保留行所需的最小非NAN元素数量。
stream – [in] 用于设备内存操作和内核启动的CUDA流
mr – [in] 用于分配返回表的设备内存的设备内存资源
- Returns:
包含所有
input行的表格,其中keys中至少有keep_threshold个非NAN元素。
-
std::unique_ptr<table> drop_nans(table_view const &input, std::vector<size_type> const &keys, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
过滤表格以移除NANs。
过滤
input的行,考虑在keys中指定的列的NANs。这些关键列必须是浮点类型。input {col1: {1.0, 2.0, 3.0, NAN}, col2: {4.0, null, NAN, NAN}, col3: {null, NAN, NAN, NAN}} keys = {0, 1, 2} // All columns keep_threshold = 2 output {col1: {1.0} col2: {4.0} col3: {null}}与 drop_nans 相同,但默认将 keep_threshold 设置为
keys中的列数。- Parameters:
input – [in] 要过滤的输入
table_viewkeys – [in] 表示来自
input的关键列的索引向量stream – [in] 用于设备内存操作和内核启动的CUDA流
mr – [in] 用于分配返回表的设备内存的设备内存资源
- Returns:
包含
input中所有行的表格,其中keys列中没有NANs。
-
std::unique_ptr<table> apply_boolean_mask(table_view const &input, column_view const &boolean_mask, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
使用布尔值
boolean_mask作为掩码来过滤input。给定一个输入
table_view和一个掩码column_view,如果掩码中的对应元素i非空且为true,则从input的每个 column_view 中复制元素i到相应的输出列。此操作是稳定的:输入顺序保持不变。注意
如果
input.num_rows()为零,则不会出现错误,并返回一个空表。- Throws:
cudf::logic_error – 如果
input.num_rows() != boolean_mask.size()。cudf::logic_error – 如果
boolean_mask不是type_id::BOOL8类型。
- Parameters:
input – [in] 要过滤的输入 table_view
boolean_mask – [in] 一个可为空的 column_view 类型的 type_id::BOOL8,用作过滤
input的掩码。stream – [in] 用于设备内存操作和内核启动的CUDA流
mr – [in] 用于分配返回表的设备内存的设备内存资源
- Returns:
包含通过
boolean_mask定义的过滤器筛选出的input所有行的副本的表格。
-
std::unique_ptr<table> unique(table_view const &input, std::vector<size_type> const &keys, duplicate_keep_option keep, null_equality nulls_equal = null_equality::EQUAL, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
创建一个新表,删除连续的重复行。
给定一个
inputtable_view,每一行都会被复制到输出表中以创建一组不同的行。如果有重复的行,复制哪一行取决于keep参数。输出表中的行顺序与输入表中的行顺序保持一致。
如果表中没有等效的行,则一行是唯一的。如果没有相邻的等效行,则一行是唯一的。也就是说,保留唯一行会删除表/列中的所有重复项,而保留唯一行仅会删除连续分组中的重复项。
性能提示:如果输入是预排序的,
cudf::unique可以产生相同的结果(即相同的输出行集),但运行时间比cudf::distinct更短。- Throws:
cudf::logic_error – 如果
keys列索引在input表中超出范围。- Parameters:
input – [in] 输入 table_view 仅复制唯一行
keys – [in] 表示来自
input的关键列的索引向量keep – [in] 保留找到的重复项中的任意一个、第一个、最后一个或不保留任何重复项
nulls_equal – [in] 标志,表示如果 null_equality::EQUAL,则空值相等;如果 null_equality::UNEQUAL,则空值不相等
stream – [in] 用于设备内存操作和内核启动的CUDA流
mr – [in] 用于分配返回表的设备内存的设备内存资源
- Returns:
从每个等价行序列中提取唯一行的表格,由
keep指定
-
std::unique_ptr<table> distinct(table_view const &input, std::vector<size_type> const &keys, duplicate_keep_option keep = duplicate_keep_option::KEEP_ANY, null_equality nulls_equal = null_equality::EQUAL, nan_equality nans_equal = nan_equality::ALL_EQUAL, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
创建一个没有重复行的新表。
给定一个
inputtable_view,每一行都会被复制到输出表中以创建一组不同的行。如果有重复的行,复制哪一行取决于keep参数。输出表中行的顺序未指定。
性能提示:如果输入是预排序的,
cudf::unique可以产生相同的结果(即相同的输出行集),但运行时间比cudf::distinct更短。- Parameters:
input – 输入表
keys – 表示
input表中关键列的索引向量keep – 复制找到的重复项中的任意一个、第一个、最后一个或不复制
nulls_equal – 标志,用于指定是否应将空元素视为相等
nans_equal – 标志,用于指定是否应将NaN元素视为相等
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回表的设备内存资源
- Returns:
表中包含不同行,顺序未指定
-
std::unique_ptr<column> distinct_indices(table_view const &input, duplicate_keep_option keep = duplicate_keep_option::KEEP_ANY, null_equality nulls_equal = null_equality::EQUAL, nan_equality nans_equal = nan_equality::ALL_EQUAL, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
创建一个列,包含输入表中所有不同行的索引。
给定一个
inputtable_view,会生成一个包含所有不同行的行索引的输出向量。如果有重复的行,保留哪个索引取决于keep参数。- Parameters:
input – 输入表
keep – 获取找到的重复项的任何、第一个、最后一个或没有的索引
nulls_equal – 标志,用于指定是否应将空元素视为相等
nans_equal – 标志,用于指定NaN元素是否应被视为相等
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回向量的设备内存资源
- Returns:
包含结果索引的列
-
std::unique_ptr<table> stable_distinct(table_view const &input, std::vector<size_type> const &keys, duplicate_keep_option keep = duplicate_keep_option::KEEP_ANY, null_equality nulls_equal = null_equality::EQUAL, nan_equality nans_equal = nan_equality::ALL_EQUAL, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
创建一个没有重复行的新表,保留输入顺序。
给定一个
inputtable_view,每一行都会被复制到输出表中以创建一组不同的行。输入行的顺序会被保留。如果有重复的行,复制哪一行取决于keep参数。此API生成的输出行与
cudf::distinct相同,但保留了输入顺序。请注意,当
keep为KEEP_ANY时,选择保留哪个重复行是任意的,但返回的表将保留输入顺序。也就是说,如果键列包含1, 2, 1,而另一个值列包含3, 4, 5,结果可能包含值3, 4或4, 5,但不会包含4, 3或5, 4。- Parameters:
input – 输入表
keys – 表示
input表中关键列的索引向量keep – 复制找到的重复项中的任意一个、第一个、最后一个或不复制
nulls_equal – 标志,用于指定是否应将空元素视为相等
nans_equal – 标志,用于指定是否应将NaN元素视为相等
stream – 用于设备内存操作和内核启动的CUDA流。
mr – 用于分配返回表的设备内存资源
- Returns:
具有不同行的表格,保留输入顺序
-
cudf::size_type unique_count(column_view const &input, null_policy null_handling, nan_policy nan_handling, rmm::cuda_stream_view stream = cudf::get_default_stream())#
计算列中连续等效行的组数。
如果
null_handling是 null_policy::EXCLUDE 并且nan_handling是 nan_policy::NAN_IS_NULL,则NaN和null值都会被忽略。如果null_handling是 null_policy::EXCLUDE 并且nan_handling是 nan_policy::NAN_IS_VALID,则只有null会被忽略,NaN会被计入计数。null被视为相等。- Parameters:
input – [in] 用于计算连续等效行的 column_view
null_handling – [in] 标志,用于在计数时包含或忽略
nullnan_handling – [in] 标志,用于考虑
NaN==null或不考虑stream – [in] 用于设备内存操作和内核启动的CUDA流
- Returns:
列中连续等效行的组数
-
cudf::size_type unique_count(table_view const &input, null_equality nulls_equal = null_equality::EQUAL, rmm::cuda_stream_view stream = cudf::get_default_stream())#
计算表中连续等效行的组数。
- Parameters:
input – [in] 表格,其连续等效行的组将被计数
nulls_equal – [in] 标志,表示是否应将空元素视为相等。如果 null_equality::UNEQUAL,则空元素不相等。
stream – [in] 用于设备内存操作和内核启动的CUDA流
- Returns:
列中连续等效行的组数
-
cudf::size_type distinct_count(column_view const &input, null_policy null_handling, nan_policy nan_handling, rmm::cuda_stream_view stream = cudf::get_default_stream())#
计算column_view中的不同元素数量。
如果
nulls_equal == nulls_equal::UNEQUAL,所有的null都是不同的。给定一个输入 column_view,返回此 column_view 中不同元素的数量。
如果
null_handling是 null_policy::EXCLUDE 并且nan_handling是 nan_policy::NAN_IS_NULL,则NaN和null值都会被忽略。如果null_handling是 null_policy::EXCLUDE 并且nan_handling是 nan_policy::NAN_IS_VALID,则只有null会被忽略,NaN会被计入不同的计数中。null被视为相等。- Parameters:
input – [in] 要计算其不同元素的 column_view
null_handling – [in] 标志,用于在计数时包含或忽略
nullnan_handling – [in] 标志,用于考虑
NaN==null或不考虑stream – [in] 用于设备内存操作和内核启动的CUDA流
- Returns:
表中不同行的数量
-
cudf::size_type distinct_count(table_view const &input, null_equality nulls_equal = null_equality::EQUAL, rmm::cuda_stream_view stream = cudf::get_default_stream())#
计算表中不同的行数。
- Parameters:
input – [in] 将计算其不同行的表
nulls_equal – [in] 标志,表示是否应将空元素视为相等。如果 null_equality::UNEQUAL,则空元素不相等。
stream – [in] 用于设备内存操作和内核启动的CUDA流
- Returns:
表中不同行的数量
-
std::unique_ptr<table> drop_nulls(table_view const &input, std::vector<size_type> const &keys, cudf::size_type keep_threshold, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#