复制散点图#
- group copy_scatter
函数
-
std::unique_ptr<table> scatter(table_view const &source, column_view const &scatter_map, table_view const &target, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
根据散点图将源表的行分散到目标表的副本中。
将源表中的值分散到目标表中,返回一个“目标表”。分散是根据分散映射进行的,使得目标表的行
scatter_map[i]获取源表的行i。目标表的其他所有行等于目标表的相应行。源中的列数必须与目标中的列数匹配,并且它们对应的数据类型必须相同。
如果相同的索引在散点图中出现多次,结果是未定义的。
如果
scatter_map中的任何值超出了区间 [-n, n),其中n是target表中的行数,则行为未定义。在
scatter_map中的负值i被解释为i+n,其中n是target表中的行数。- Throws:
std::invalid_argument – 如果源中的列数与目标中的列数不匹配
std::invalid_argument – 如果源中的行数与 scatter_map 中的元素数不匹配
cudf::data_type_error – 如果源列和目标列的数据类型不匹配
std::invalid_argument – 如果 scatter_map 包含空值
- Parameters:
source – 包含要分散到目标列中的值的输入列
scatter_map – 一个非空的整型索引列,用于将源表中的行映射到目标表中的行。其大小必须等于或小于源列中的元素数量。
target – 目标列集,用于分散来自 source_table 的值
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回表的设备内存的设备内存资源
- Returns:
将值从源散射到目标的结果
-
std::unique_ptr<table> scatter(std::vector<std::reference_wrapper<scalar const>> const &source, column_view const &indices, table_view const &target, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
根据散点图将一行标量值分散到目标表的副本中。
将源行的值分散到目标表中,返回一个“目标表”。分散是根据分散映射进行的,使得目标表的行
scatter_map[i]被源行替换。目标表的所有其他行等于目标表的相应行。源中的元素数量必须与目标中的列数匹配,并且它们对应的数据类型必须相同。
如果相同的索引在散点图中出现多次,结果是未定义的。
如果
scatter_map中的任何值超出了区间 [-n, n),其中n是target表中的行数,则行为未定义。- Throws:
std::invalid_argument – 如果标量的数量与目标中的列数不匹配
std::invalid_argument – 如果 indices 包含空值
cudf::data_type_error – 如果标量和目标列的数据类型不匹配
- Parameters:
source – 包含要分散到目标列中的值的输入标量
indices – 一个非空的整型索引列,指示目标表中将被源表替换的行。
target – 目标列集,用于分散来自 source_table 的值
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回表的设备内存的设备内存资源
- Returns:
将值从源散射到目标的结果
-
std::unique_ptr<table> boolean_mask_scatter(table_view const &input, table_view const &target, 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())#
将输入表中的行根据布尔掩码中的真值分散到输出的相应行。
input的第i行将被写入到输出表中boolean_mask的第i个真值的位置。输出中的所有其他行将等于target中的相同行。boolean_mask中的true数量应小于或等于input中的行数。如果布尔掩码为true,则目标中的相应值将使用来自input列的相应值进行更新,否则保持不变。Example: input: {{1, 5, 6, 8, 9}} boolean_mask: {true, false, false, false, true, true, false, true, true, false} target: {{ 2, 2, 3, 4, 4, 7, 7, 7, 8, 10}} output: {{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}- Throws:
std::invalid_argument – 如果 input.num_columns() != target.num_columns()
cudf::data_type_error – 如果任何
ith input_column 类型 !=ith target_column 类型cudf::data_type_error – 如果 boolean_mask.type() != bool
std::invalid_argument – 如果 boolean_mask.size() != target.num_rows()
std::invalid_argument – 如果
boolean_mask中的true数量大于 input.num_rows()
- Parameters:
input – table_view (密集列的集合)用于分散
target – 使用来自
input的分散值进行修改的 table_viewboolean_mask – column_view 作为布尔掩码
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回表的设备内存的设备内存资源
- Returns:
根据
boolean_mask将input分散到target中,返回一个表
-
std::unique_ptr<table> boolean_mask_scatter(std::vector<std::reference_wrapper<scalar const>> const &input, table_view const &target, 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())#
将标量值分散到与布尔掩码中真值对应的输出行。
input中的第i个标量将被写入到输出表的第i列,位置对应于boolean_mask中每个为真的值。输出中的所有其他行将等于target中的相同行。Example: input: {11} boolean_mask: {true, false, false, false, true, true, false, true, true, false} target: {{ 2, 2, 3, 4, 4, 7, 7, 7, 8, 10}} output: {{ 11, 2, 3, 4, 11, 11, 7, 11, 11, 10}}- Throws:
std::invalid_argument – 如果 input.size() != target.num_columns()
cudf::data_type_error – 如果任何
ith input_column 类型 !=ith target_column 类型cudf::data_type_error – 如果 boolean_mask.type() != bool
std::invalid_argument – 如果 boolean_mask.size() != target.num_rows()
- Parameters:
input – 要分散的标量
target – 使用来自
input的分散值进行修改的 table_viewboolean_mask – column_view 作为布尔掩码
stream – 用于设备内存操作和内核启动的CUDA流
mr – 用于分配返回表的设备内存的设备内存资源
- Returns:
根据
boolean_mask将input分散到target中,返回一个表
-
std::unique_ptr<table> scatter(table_view const &source, column_view const &scatter_map, table_view const &target, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#