转换填充#
- 组 填充
函数
-
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
开始的destination
的 N 个元素,使用value
,其中 N = (end
-begin
)。使用
value
覆盖destination
中由索引 [begin
,end
) 指示的元素范围。对于需要重新分配内存的使用场景,请使用返回 std::unique_ptr<column> 的非就地填充函数。- 抛出:
cudf::logic_error – 如果需要重新分配内存(例如对于变宽类型)。
cudf::logic_error – 如果范围无效(如果
begin
< 0,begin
>end
, 或end
>destination.size()
)。cudf::logic_error – 如果
destination
和value
类型不同。cudf::logic_error – 如果
value
无效但destination
不可为空。
- 参数:
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
覆盖。- 抛出:
cudf::logic_error – 如果范围无效(如果
begin
< 0,begin
>end
, 或end
>destination.size()
)。cudf::logic_error – 如果
destination
和value
类型不同。
- 参数:
input – 用于创建新列的输入列。新列是通过用
value
替换指定范围内的input
的值来创建的。begin – 填充范围的起始索引(包含)
end – 填充范围中最后一个元素的索引(不包含)
value – 要填充的标量值
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回列的设备内存的设备内存资源
- 返回:
结果输出列
-
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())#
重复 Table 的行。
通过重复
input_table
的行来创建一个新表。每个元素的重复次数由count
相应索引处的值定义。示例in = [4,5,6] count = [1,2,3] return = [4,5,5,6,6,6]
count
不应包含空值;不应包含负值;且计数元素的总和不应超过 size_type 的限制。如果count
包含负值或总和溢出,则此函数的行为是未定义的。- 抛出:
cudf::logic_error – 如果
count
的数据类型不是 size_type。cudf::logic_error – 如果
input_table
和count
的行数不同。cudf::logic_error – 如果
count
包含空值。
- 参数:
input_table – 输入表
count – 不可为空的整数类型列
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回表的设备内存的设备内存资源
- 返回:
包含重复行的结果表
-
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())#
重复 Table 的行。
通过将
input_table
的行重复count
次来创建一个新表。示例in = [4,5,6] count = 2 return = [4,4,5,5,6,6]
- 抛出:
cudf::logic_error – 如果
count
是负数。std::overflow_error – 如果
input_table.num_rows()
*count
超过 size_type 的限制。
- 参数:
input_table – 输入表
count – 重复次数
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回表的设备内存的设备内存资源
- 返回:
包含重复行的结果表
-
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())#
使用由初始值和步长指定的值序列填充列。
创建一个新列并填充
size
个值,从init
开始,每次增加step
,生成序列 [ init, init+step, init+2*step, … init + (size - 1)*step]size = 3 init = 0 step = 2 return = [0, 2, 4]
- 抛出:
cudf::logic_error – 如果
init
和step
不是相同的类型。cudf::logic_error – 如果标量类型不是数字类型。
cudf::logic_error – 如果
size
< 0。
- 参数:
size – 输出列的大小
init – 序列中的第一个值
step – 增量值
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回列的设备内存的设备内存资源
- 返回:
包含生成的序列的结果列
-
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 指定的值序列填充列。
创建一个新列并填充
size
个值,从init
开始,每次增加 1,生成序列 [ init, init+1, init+2, … init + (size - 1)]size = 3 init = 0 return = [0, 1, 2]
- 抛出:
cudf::logic_error – 如果
init
不是数字类型。cudf::logic_error – 如果
size
< 0。
- 参数:
size – 输出列的大小
init – 序列中的第一个值
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回列的设备内存的设备内存资源
- 返回:
包含生成的序列的结果列
-
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
,即对于i
在[0, size)
范围内,为output[i] = init + i * months
。如果给定日期无效,日期将回退到该月的最后一个有效日期。
示例
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]
- 抛出:
cudf::logic_error – 如果输入数据类型不是 TIMESTAMP
- 参数:
size – 要生成的时间戳数量
init – 初始时间戳
months – 增加的月数
stream – 用于设备内存操作和内核启动的 CUDA 流
mr – 用于分配返回列的设备内存的设备内存资源
- 返回:
包含月份序列的时间戳列
-
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())#