Рекомендованный cudf Dataframe Construction - PullRequest
1 голос
/ 30 апреля 2019

Меня интересуют рекомендуемые и быстрые способы создания фреймов данных cudf из плотных крошечных объектов. Я видел много примеров разделения столбцов двумерной матрицы на кортежи с последующим вызовом cudf.DataFrame в списке кортежей - это довольно дорого. Использование numba.cuda.to_device довольно быстро. Можно ли использовать numba.cuda.to_device или существует более эффективный способ построения DataFrame?

In [1]: import cudf

In [2]: import numba.cuda

In [3]: import numpy as np

In [4]: data = np.random.random((300,100))

In [5]: data.nbytes
Out[5]: 240000

In [6]: %time numba.cuda.to_device(data)
CPU times: user 8 ms, sys: 0 ns, total: 8 ms
Wall time: 4.45 ms
Out[6]: <numba.cuda.cudadrv.devicearray.DeviceNDArray at 0x7f8954f84550>

In [7]: record_data = (('fea%d'%i, data[:,i]) for i in range(data.shape[1]))

In [8]: %time cudf.DataFrame(record_data)
CPU times: user 960 ms, sys: 508 ms, total: 1.47 s
Wall time: 1.61 s
Out[8]: <cudf.DataFrame ncols=100 nrows=300 >

Выше показано, что cudf.DataFrame ~ 360x медленнее, чем прямой вызов numba.cuda.to_device

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...