字符串查找#

查找

函数

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,则每个字符串的末尾成为搜索的最终位置。

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

抛出:

cudf::logic_error – 如果 start 位置大于 stop 位置。

参数:
  • input – 用于此操作的字符串实例

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

  • start – 搜索中包含的起始字符位置

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

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

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

返回:

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

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,则每个字符串的末尾成为搜索的最终位置。

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

抛出:

cudf::logic_error – 如果 start 位置大于 stop 位置。

参数:
  • input – 用于此操作的字符串实例

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

  • start – 搜索中包含的起始位置

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

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

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

返回:

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

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 开始搜索时,目标字符串在行 i 中的字符位置。如果在输入字符串中找不到目标,则该行在输出列中的条目返回 -1。

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

抛出:

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

参数:
  • input – 被搜索的字符串

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

  • start – 搜索中包含的起始字符位置

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

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

返回:

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

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。

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

参数:
  • input – 用于此操作的字符串实例

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

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

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

返回:

新的 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 表示找到。

如果字符串 targets[i]input[i] 内部找到,则 output[i] = true,否则 output[i] = false。如果 target[i] 是一个空字符串,则 output[i] 返回 true。如果 target[i] 是空值,则 output[i] 返回 false。

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

抛出:

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

参数:
  • input – 用于此操作的字符串实例

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

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

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

返回:

新的 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。

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

参数:
  • input – 用于此操作的字符串实例

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

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

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

返回:

新的 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 中的任何空值字符串条目都会返回相应的输出列空值条目。

抛出:

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

参数:
  • input – 用于此操作的字符串实例

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

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

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

返回:

新的 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。

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

参数:
  • input – 用于此操作的字符串实例

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

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

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

返回:

新的 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 中的任何空值字符串条目都会返回相应的输出列空值条目。

抛出:

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

参数:
  • input – 用于此操作的字符串实例

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

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

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

返回:

新的 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]
抛出:

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

参数:
  • input – 用于此操作的字符串实例

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

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

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

返回:

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
抛出:

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

参数:
  • input – 用于此操作的字符串实例

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

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

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

返回:

包含字符位置值的列表列