复制散点图#

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),其中 ntarget 表中的行数,则行为未定义。

scatter_map中的负值i被解释为i+n,其中ntarget表中的行数。

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),其中 ntarget 表中的行数,则行为未定义。

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:
  • inputtable_view (密集列的集合)用于分散

  • target – 使用来自 input 的分散值进行修改的 table_view

  • boolean_maskcolumn_view 作为布尔掩码

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

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

Returns:

根据boolean_maskinput分散到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_view

  • boolean_maskcolumn_view 作为布尔掩码

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

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

Returns:

根据boolean_maskinput分散到target中,返回一个表