0

我正在使用 CUDF,它是 Nvidia 的 rapids ML 套件的一部分。

使用这个套件,我将如何在两个 DataFrame 之间进行点积?

a = cudf.DataFrame([[0.1, 0.2, 0.3, 0.4], [0.1, 0.2, 0.3, 0.4]])
b = cudf.DataFrame([[0.1, 0.2], [0.1, 0.2]])
a.T.dot(b) # It doesn't work, cudf doesn't supprot .dot

例如,我将如何在上述数据帧上执行点积?

4

1 回答 1

0

cuDF 不直接支持对 Series 或 DataFrame 进行此操作,但您可以使用.values符号零复制转换为 CuPy 数组,执行此操作,然后将结果转换回带有from_gpu_matrix.

import cudf

a = cudf.DataFrame([[0.1, 0.2, 0.3, 0.4], [0.1, 0.2, 0.3, 0.4]])
b = cudf.DataFrame([[0.1, 0.2], [0.1, 0.2]])
res = cudf.DataFrame.from_gpu_matrix(
    a.values.T.dot(b.values)
)

print(res)
    0   1
0   0.02    0.04
1   0.04    0.08
2   0.06    0.12
3   0.08    0.16
于 2020-03-30T12:47:16.797 回答