列表提取#
- 组 提取
函数
-
std::unique_ptr<column> extract_list_element(lists_column_view const &lists_column, size_type index, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
创建一个列,其中每一行是输入
lists_column
中对应子列表中位于index
位置的元素。输出
column[i]
的值设置为lists_column[i][index]
的元素。如果index
大于lists_column[i]
处子列表的大小,则输出column[i] = null
。l = { {1, 2, 3}, {4}, {5, 6} } r = extract_list_element(l, 1) r is now {2, null, 6}
index
也可以是负数,这种情况下检索到的行是从每个子列表末尾开始偏移的。l = { {"a"}, {"b", "c"}, {"d", "e", "f"} } r = extract_list_element(l, -1) r is now {"a", "c", "f"}
任何
lists_column[i] == null
的输入都将产生输出column[i] = null
。此外,任何lists_column[i][index] == null
的元素都将产生输出column[i] = null
。- 参数:
lists_column – 要从中提取元素的列。
index – 要从每个子列表中检索的行索引。
stream – 用于设备内存操作和内核启动的 CUDA 流。
mr – 用于分配返回列的设备内存的设备内存资源。
- 返回值:
提取元素的列。
-
std::unique_ptr<column> extract_list_element(lists_column_view const &lists_column, column_view const &indices, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#
创建一个列,其中每一行是从输入
lists_column
中对应子列表中使用indices
列中的索引选择的单个元素。输出
column[i]
的值设置为lists_column[i][indices[i]]
的元素。如果indices[i]
大于lists_column[i]
处子列表的大小,则输出column[i] = null
。类似地,如果indices[i]
为null
,则column[i] = null
。l = { {1, 2, 3}, {4}, {5, 6} } r = extract_list_element(l, {0, null, 2}) r is now {1, null, null}
indices[i]
也可以是负数,这种情况下检索到的行是从每个子列表末尾开始偏移的。l = { {"a"}, {"b", "c"}, {"d", "e", "f"} } r = extract_list_element(l, {-1, -2, -4}) r is now {"a", "b", null}
任何
lists_column[i] == null
的输入都会产生输出column[i] = null
。任何lists_column[i][indices[i]] == null
的输入都会产生输出column[i] = null。
- 参数:
lists_column – 要从中提取元素的列。
indices – 其行指示要从每个列表行中检索的元素索引的列。
stream – 用于设备内存操作和内核启动的 CUDA 流。
mr – 用于分配返回列的设备内存的设备内存资源。
- 抛出异常:
cudf::logic_error – 如果
lists_column
和indices
的大小不匹配。- 返回值:
提取元素的列。
-
std::unique_ptr<column> extract_list_element(lists_column_view const &lists_column, size_type index, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#