字符串查找#

group strings_find

函数

std::unique_ptr<column> find(strings_column_view const &input, string_scalar const &target, size_type start = 0, size_type stop = -1, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

返回一个字符位置值的列,其中目标字符串在提供的列的每个字符串中首次出现。

如果未找到 target,则输出列中的该行条目返回 -1。

目标字符串在字符位置范围 [start, stop) 内的每个字符串中进行搜索。如果 stop 参数为 -1,则每个字符串的末尾将成为搜索中包含的最终位置。

任何空字符串条目返回相应的空输出列条目。

Throws:

cudf::logic_error – 如果起始位置大于停止位置。

Parameters:
  • input – 此操作的字符串实例

  • target – 在每个字符串中搜索的UTF-8编码字符串

  • start – 搜索中包含的第一个字符位置

  • stop – 搜索中包含的最后一个位置(不包含)。默认值为-1,将搜索到字符串的末尾。

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

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

Returns:

带有字符位置值的新整数列

std::unique_ptr<column> rfind(strings_column_view const &input, string_scalar const &target, size_type start = 0, size_type stop = -1, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

返回一个字符位置值的列,其中目标字符串是从每个字符串的末尾开始搜索时首次找到的。

如果未找到 target,则该条目返回 -1。

目标字符串在字符位置范围 [start, stop) 内的每个字符串中进行搜索。如果 stop 参数为 -1,则每个字符串的末尾将成为搜索中包含的最终位置。

任何空字符串条目返回相应的空输出列条目。

Throws:

cudf::logic_error – 如果起始位置大于停止位置。

Parameters:
  • input – 此操作的字符串实例

  • target – 在每个字符串中搜索的UTF-8编码字符串

  • start – 搜索中包含的第一个位置

  • stop – 搜索中包含的最后一个位置(不包含)。默认值为-1,将从字符串的末尾开始搜索。

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

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

Returns:

带有字符位置值的新整数列

std::unique_ptr<column> find(strings_column_view const &input, strings_column_view const &target, size_type start = 0, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

返回一个字符位置值的列,其中目标字符串首次出现在提供列的相应字符串中。

i 行的输出是目标字符串在第 i 行输入字符串中从字符位置 start 开始的位置。如果在输入字符串中未找到目标,则输出列中该行条目返回 -1。

任何空输入或目标条目将返回相应的空输出列条目。

Throws:

cudf::logic_error – 如果 input.size() != target.size()

Parameters:
  • input – 要搜索的字符串

  • target – 在 input 中搜索的字符串

  • start – 搜索中包含的第一个字符位置

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

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

Returns:

带有字符位置值的新整数列

std::unique_ptr<column> contains(strings_column_view const &input, string_scalar const &target, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

返回每行字符串的布尔值列,其中true表示在提供的列中找到了目标字符串。

如果在字符串中未找到target,则输出列中的该条目将返回false。如果target为空字符串,则输出列中的所有非空条目将返回true。

任何空字符串条目在输出列中返回相应的空条目。

Parameters:
  • input – 此操作的字符串实例

  • target – 在每个字符串中搜索的UTF-8编码字符串

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

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

Returns:

新的 BOOL8 列

std::unique_ptr<column> contains(strings_column_view const &input, strings_column_view const &targets, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

返回每行字符串的布尔值列,其中true表示在提供的列中找到了相应的目标字符串。

如果stringtargets[i]input[i]中找到,则output[i] = true否则output[i] = false 如果target[i]是空字符串,则返回output[i]true 如果target[i]null,则返回output[i]`为false。

任何空字符串条目在输出列中返回相应的空条目。

Throws:

cudf::logic_error – 如果 strings.size() != targets.size().

Parameters:
  • input – 此操作的字符串实例

  • targets – 要在strings中逐行检查的目标字符串列

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

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

Returns:

新的 BOOL8 列

std::unique_ptr<column> starts_with(strings_column_view const &input, string_scalar const &target, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

返回每行字符串的布尔值列,其中true表示在提供的列中该字符串的开头找到了目标字符串。

如果在字符串的开头没有找到target,则在输出列的该行条目中设置为false。如果target是一个空字符串,则在输出列中的所有非空条目中返回true。

任何空字符串条目在输出列中返回相应的空条目。

Parameters:
  • input – 此操作的字符串实例

  • target – 在每个字符串中搜索的UTF-8编码字符串

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

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

Returns:

新的 type_id::BOOL8 列。

std::unique_ptr<column> starts_with(strings_column_view const &input, strings_column_view const &targets, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

返回每行字符串的布尔值列,其中true表示在提供的列中该字符串的开头找到了目标列中的相应字符串。

如果在strings[i]的字符串开头未找到targets[i],则在输出列的该行条目中设置为false。如果targets[i]是空字符串,则在输出列的相应条目中返回true。

targets 中的任何空字符串条目会在输出列中返回相应的空条目。

Throws:

cudf::logic_error – 如果 strings.size() != targets.size().

Parameters:
  • input – 此操作的字符串实例

  • targets – 此操作的字符串实例

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

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

Returns:

新的 BOOL8 列

std::unique_ptr<column> ends_with(strings_column_view const &input, string_scalar const &target, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

返回每行字符串的布尔值列,其中true表示在提供的列中该字符串的末尾找到了目标字符串。

如果在字符串的末尾未找到target,则输出列中的该行条目设置为false。如果target是空字符串,则输出列中的所有非空条目返回true。

任何空字符串条目在输出列中返回相应的空条目。

Parameters:
  • input – 此操作的字符串实例

  • target – 在每个字符串中搜索的UTF-8编码字符串

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

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

Returns:

新的 BOOL8 列

std::unique_ptr<column> ends_with(strings_column_view const &input, strings_column_view const &targets, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

返回每行字符串的布尔值列,其中true表示在提供的列中该字符串的末尾找到了目标列中的相应字符串。

如果在strings[i]的字符串末尾未找到targets[i],则在输出列的该行条目中设置为false。如果targets[i]是空字符串,则在输出列的相应条目中返回true。

targets中的任何空字符串条目将在输出列中返回相应的空条目。

Throws:

cudf::logic_error – 如果 strings.size() != targets.size().

Parameters:
  • input – 此操作的字符串实例

  • targets – 此操作的字符串实例

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

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

Returns:

新的 BOOL8 列

std::unique_ptr<table> contains_multiple(strings_column_view const &input, strings_column_view const &targets, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::mr::device_memory_resource *mr = rmm::mr::get_current_device_resource())#

在提供的列中的每个字符串中搜索给定的目标字符串。

结果表中的每一列对应于相同序数的目标字符串的结果。即第0列是第0个目标字符串的BOOL8列结果,第1列是第1个目标字符串的结果,依此类推。

如果在字符串中未找到目标,则输出列中的该条目返回false。如果目标为空字符串,则输出列中的所有非空条目返回true。

任何空输入字符串在输出列中返回相应的空条目。

input = ["a", "b", "c"]
targets = ["a", "c"]
output is a table with two boolean columns:
  column 0: [true, false, false]
  column 1: [false, false, true]
Throws:

std::invalid_argument – 如果 targets 为空或包含空值

Parameters:
  • input – 此操作的字符串实例

  • targets – 在input中的每个字符串中搜索的UTF-8编码字符串

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

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

Returns:

BOOL8 列的表

std::unique_ptr<column> find_multiple(strings_column_view const &input, strings_column_view const &targets, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

在提供的列中的每个字符串中搜索给定的目标字符串,并返回找到目标的位置。

输出列的大小为 input.size()。输出列的每一行的大小为 targets.size()

output[i,j] 包含 targets[j]input[i] 中的位置

Example:
s = ["abc", "def"]
t = ["a", "c", "e"]
r = find_multiple(s, t)
r is now {[ 0, 2,-1],   // for "abc": "a" at pos 0, "c" at pos 2, "e" not found
          [-1,-1, 1 ]}  // for "def": "a" and "b" not found, "e" at  pos 1
Throws:

std::invalid_argument – 如果 targets 为空或包含空值

Parameters:
  • input – 此操作的字符串实例

  • targets – 在每个字符串中搜索的字符串

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

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

Returns:

列出带有字符位置值的列