转换填充#

group transformation_fill

函数

void fill_in_place(mutable_column_view &destination, size_type begin, size_type end, scalar const &value, rmm::cuda_stream_view stream = cudf::get_default_stream())#

用标量值填充列中的一系列元素。

begin开始,用value填充destination的N个元素,其中N = (end - begin)。

覆盖destination中由索引[begin, end)指示的元素范围,使用value。对于需要内存重新分配的用例,使用返回std::unique_ptr的非原地填充函数。

Throws:
  • cudf::logic_error – 如果需要重新分配内存(例如,对于可变宽度类型)。

  • cudf::logic_error – 用于无效范围(如果 begin < 0, begin > end, 或 end > destination.size())。

  • cudf::logic_error – 如果 destinationvalue 的类型不同。

  • cudf::logic_error – 如果 value 无效但 destination 不可为空。

Parameters:
  • destination – 预分配的列以填充

  • begin – 填充范围的起始索引(包含)

  • end – 填充范围的最后一个元素的索引(不包括在内)

  • value – 要填充的标量值

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

std::unique_ptr<column> fill(column_view const &input, size_type begin, size_type end, scalar const &value, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

用标量值填充列中的一系列元素,不改变原位置。

创建一个新列,就像在input中执行了原地填充操作;也就是说,就好像首先创建了input的副本,然后由索引[begin, end)指示的元素被value覆盖。

Throws:
  • cudf::logic_error – 用于无效范围(如果 begin < 0, begin > end, 或 end > destination.size())。

  • cudf::logic_error – 如果 destinationvalue 的类型不同。

Parameters:
  • input – 用于创建新列的输入列。新列是通过将指定范围内的input值替换为value来创建的。

  • begin – 填充范围的起始索引(包含)

  • end – 填充范围的最后一个元素的索引(不包括在内)

  • value – 要填充的标量值

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

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

Returns:

结果输出列

std::unique_ptr<table> repeat(table_view const &input_table, column_view const &count, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

重复表格的行。

通过重复input_table的行来创建一个新表。每个元素的重复次数由count中相应索引的值定义。示例:

in = [4,5,6]
count = [1,2,3]
return = [4,5,5,6,6,6]
count should not have null values; should not contain negative values; and the sum of count elements should not overflow the size_type’s limit. The behavior of this function is undefined if count has negative values or the sum overflows.

Throws:
Parameters:
  • input_table – 输入表

  • count – 不可为空的整数类型列

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

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

Returns:

包含重复项的结果表

std::unique_ptr<table> repeat(table_view const &input_table, size_type count, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

重复表格的行。

通过重复 input_table 的行 count 次来创建一个新表。示例:

in = [4,5,6]
count = 2
return = [4,4,5,5,6,6]

Throws:
  • cudf::logic_error – 如果 count 是负数。

  • std::overflow_error – 如果 input_table.num_rows() * count 溢出 size_type。

Parameters:
  • input_table – 输入表

  • count – 重复次数

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

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

Returns:

包含重复项的结果表

std::unique_ptr<column> sequence(size_type size, scalar const &init, scalar const &step, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

用由初始值和步长指定的值序列填充列。

创建一个新列,并用从init开始,以step递增的size个值填充,生成序列 [ init, init+step, init+2*step, … init + (size - 1)*step]

size = 3
init = 0
step = 2
return = [0, 2, 4]

Throws:
Parameters:
  • size – 输出列的大小

  • init – 序列中的第一个值

  • step – 增量值

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

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

Returns:

包含生成序列的结果列

std::unique_ptr<column> sequence(size_type size, scalar const &init, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

用由初始值和步长为1指定的值序列填充列。

创建一个新列,并用从init开始,每次增加1的size个值填充,生成序列 [ init, init+1, init+2, … init + (size - 1)]

size = 3
init = 0
return = [0, 1, 2]

Throws:
Parameters:
  • size – 输出列的大小

  • init – 序列中的第一个值

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

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

Returns:

包含生成序列的结果列

std::unique_ptr<cudf::column> calendrical_month_sequence(size_type size, scalar const &init, size_type months, rmm::cuda_stream_view stream = cudf::get_default_stream(), rmm::device_async_resource_ref mr = cudf::get_current_device_resource_ref())#

生成一个时间戳序列,从 init 开始,每个后续元素递增 months,即 output[i] = init + i * months,其中 i[0, size) 范围内。

如果给定的日期无效,日期将回退到该月的最后可用日。

示例:

size = 3
init = 2020-01-31 08:00:00
months = 1
return = [2020-01-31 08:00:00, 2020-02-29 08:00:00, 2020-03-31 08:00:00]

Throws:

cudf::logic_error – 如果输入数据类型不是TIMESTAMP

Parameters:
  • size – 要生成的时间戳数量

  • init – 初始时间戳

  • months – 要增加的月份数

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

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

Returns:

带有月份序列的时间戳列