复制切片#

group copy_slice

函数

std::vector<column_view> slice(column_view const &input, host_span<size_type const> indices, rmm::cuda_stream_view stream = cudf::get_default_stream())#

根据一组索引将column_view切片成一组column_view

返回的input视图由偶数索引构建,其中第i个返回的column_view视图查看input中由范围[indices[2*i], indices[(2*i)+1])指示的元素。

对于所有的 i,预期 indices[i] <= input.size() 对于所有的 i%2==0,预期 indices[i] <= indices[i+1]

input:   {10, 12, 14, 16, 18, 20, 22, 24, 26, 28}
indices: {1, 3, 5, 9, 2, 4, 8, 8}
output:  {{12, 14}, {20, 22, 24, 26}, {14, 16}, {}}

注意

调用者有责任确保返回的视图不会超过被查看设备内存的寿命。

Throws:
  • std::invalid_argument – 如果 indices 的大小不是偶数。

  • std::invalid_argument – 当对中的值严格递减时。

  • std::out_of_range – 当对中的任何值不属于范围 [0, input.size()) 时。

Parameters:
  • input – 要切片的列的视图

  • indices – 用于对 input 进行切片操作的索引

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

Returns:

indices中的范围指示的input视图向量

std::vector<column_view> slice(column_view const &input, std::initializer_list<size_type> indices, rmm::cuda_stream_view stream = cudf::get_default_stream())#

根据一组索引将column_view切片成一组column_view

返回的input视图由偶数索引构建,其中第i个返回的column_view视图查看input中由范围[indices[2*i], indices[(2*i)+1])指示的元素。

对于所有的 i,预期 indices[i] <= input.size() 对于所有的 i%2==0,预期 indices[i] <= indices[i+1]

input:   {10, 12, 14, 16, 18, 20, 22, 24, 26, 28}
indices: {1, 3, 5, 9, 2, 4, 8, 8}
output:  {{12, 14}, {20, 22, 24, 26}, {14, 16}, {}}

注意

调用者有责任确保返回的视图不会超过被查看设备内存的寿命。

Throws:
  • std::invalid_argument – 如果 indices 的大小不是偶数。

  • std::invalid_argument – 当对中的值严格递减时。

  • std::out_of_range – 当对中的任何值不属于范围 [0, input.size()) 时。

Parameters:
  • input – 要切片的列的视图

  • indices – 用于获取input切片的索引

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

Returns:

indices中的范围指示的input视图的向量

std::vector<table_view> slice(table_view const &input, host_span<size_type const> indices, rmm::cuda_stream_view stream = cudf::get_default_stream())#

根据一组索引将table_view切片成一组table_view

返回的input视图由偶数索引构建,其中第i个返回的table_view视图查看input中由范围[indices[2*i], indices[(2*i)+1])指示的元素。

对于所有的 i,预期 indices[i] <= input.size() 对于所有的 i%2==0,预期 indices[i] <= indices[i+1]

input:   [{10, 12, 14, 16, 18, 20, 22, 24, 26, 28},
          {50, 52, 54, 56, 58, 60, 62, 64, 66, 68}]
indices: {1, 3, 5, 9, 2, 4, 8, 8}
output:  [{{12, 14}, {20, 22, 24, 26}, {14, 16}, {}},
          {{52, 54}, {60, 22, 24, 26}, {14, 16}, {}}]

注意

调用者有责任确保返回的视图不会超过被查看设备内存的寿命。

Throws:
  • std::invalid_argument – 如果 indices 的大小不是偶数。

  • std::invalid_argument – 当对中的值严格递减时。

  • std::out_of_range – 当对中的任何值不属于范围 [0, input.size()) 时。

Parameters:
  • input – 要切片的表的视图

  • indices – 用于对 input 进行切片操作的索引

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

Returns:

indices中的范围指示的input视图向量

std::vector<table_view> slice(table_view const &input, std::initializer_list<size_type> indices, rmm::cuda_stream_view stream = cudf::get_default_stream())#

根据一组索引将table_view切片成一组table_view

返回的input视图由偶数个索引构建,其中第i个返回的table_view视图查看input中由范围[indices[2*i], indices[(2*i)+1])指示的元素。

对于所有的 i,预期 indices[i] <= input.size() 对于所有的 i%2==0,预期 indices[i] <= indices[i+1]

input:   [{10, 12, 14, 16, 18, 20, 22, 24, 26, 28},
          {50, 52, 54, 56, 58, 60, 62, 64, 66, 68}]
indices: {1, 3, 5, 9, 2, 4, 8, 8}
output:  [{{12, 14}, {20, 22, 24, 26}, {14, 16}, {}},
          {{52, 54}, {60, 22, 24, 26}, {14, 16}, {}}]

注意

调用者有责任确保返回的视图不会超过被查看设备内存的寿命。

Throws:
  • std::invalid_argument – 如果 indices 的大小不是偶数。

  • std::invalid_argument – 当对中的值严格递减时。

  • std::out_of_range – 当对中的任何值不属于范围 [0, input.size()) 时。

Parameters:
  • input – 要切片的表的视图

  • indices – 用于获取input切片的索引

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

Returns:

indices中的范围指示的input视图向量