3 R& @8 y3 Z% v' h: z; l
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的 DataFrame 库——cuDF。
! Z7 k9 m" _# k cuDF 是一个基于 Apache Arrow 列内存格式的数据帧库,它是一个 GPU DataFrame 库,可以进行加载,连接,聚合,过滤等数据操作。
& I2 c1 q! ^% S
cuDF 提供了类似 pandas 的 API,数据工程师和数据科学家都很熟悉它们,他们可以使用它轻松地加快工作流程,而无需深入了解 CUDA 编程的细节。
/ @5 ]) e- w, j 例如,以下代码段下载 CSV,然后使用 GPU 将其解析为行和列并运行计算:
' ?" I1 `) b! m9 [6 Y
import cudf, io, requests
* t4 {. u& O" p% y from io import StringIO
4 M0 N/ W9 t- ~+ G$ F) K url="https://github.com/plotly/datasets/raw/master/tips.csv"
( ]7 v( K4 ~3 y3 L, A! R& @/ b8 f8 [# w
content = requests.get(url).content.decode(utf-8)
4 p" O3 J6 r, L. Y: Z% z8 f/ \' ` tips_df = cudf.read_csv(StringIO(content))
tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*100
) y, ^- O+ w, w2 n! t' `. s
/ |' X% |6 n$ a, f # display average tip by dining party size
8 z# b& |3 o0 K {; v! o2 b9 `" v
print(tips_df.groupby(size).tip_percentage.mean())
1 N- ^4 T5 z x- @2 B j" p3 {$ a" w
, V# h' ]) I. D3 x
得到的输出为:
9 _9 B% u' u( ]; t/ ^( o2 E: r$ U. d8 O7 N9 M( ~9 p( Q, X/ d
size
8 K3 ?5 u0 p9 Y1 C w
% |% _2 {* Y) Z" v5 N( f; l( g
1 21.729201548727808
0 ^% u# Y6 I$ {5 _6 Y: ^
9 T& S1 I, U6 n$ H' R$ R- D 2 16.571919173482897
' g; G; Q3 c5 F; {2 M
8 E/ W" a1 E/ M' H7 t, r8 G F7 ~6 y- L 3 15.215685473711837
1 M1 X$ i- u1 Z" Q& _! F
# s) i, f$ v/ U. B+ ? 4 14.594900639351332
3 [ P9 F4 R2 }$ u0 b
. U! Q8 ]4 |/ T0 j 5 14.149548965142023
8 F( K% O: t# b5 W7 Y& h6 ?# P
6 15.622920072028379
, M, e. \4 {, ~
) o, X j+ C1 W
Name: tip_percentage, dtype: float64
6 x9 O0 C) C$ |& U& l* { f* c
; O' t( H7 s* r q
想查看更多示例,可以浏览的完整 API 文档,或查看更详细的说明。
3 y q3 Y4 S$ U6 n3 K 那么如何安装这个工具?请参阅 Demo Docker Repository,根据正在运行的 NVIDIA CUDA 版本选择一个标签。
1 S* l7 W; B% q5 s3 j
安装
5 M- Y0 P9 I5 R( o9 d- M
conda
7 [* t6 L: L E' H; C! a2 ~# d3 A cuDF 可以通过渠道安装 conda(miniconda,或完整的 Anaconda 发行版) rapidsai:
& l# g! m- |! `
+ x% l7 i" H& W4 ~7 i9 p5 Y # for CUDA 9.2
& Z; ?, Q7 a: N* v conda install -c nvidia -c rapidsai -c numba -c conda-forge -c defaults \
cudf=0.6 python=3.6 cudatoolkit=9.2
2 J; w& H: }6 u$ A8 Y9 B6 Q0 }% T+ g2 F
# or, for CUDA 10.0
* W* X: Y& I7 \5 A- ]
conda install -c nvidia -c rapidsai -c numba -c conda-forge -c defaults \
: Q% V G( X$ N# U* @: v cudf=0.6 python=3.6 cudatoolkit=10.0
; e% `# J( {/ }6 K1 h7 ~* a; W( T# d6 H& A/ }5 {& b6 H
我们还提供从我们最新开发分支的尖端构建的夜间 conda 包。
Y2 W( g. z6 q; p6 x1 S5 g Q Pip
5 Z7 e1 h- ]5 e( k& R0 Y& U, T) i; U6 D cuDF 也可以用 PyPi 安装。
r$ N* R7 m) R. x! k
( C, D6 ^$ w' v # for CUDA 9.2
9 q( n% ^. ]) H+ g python3.6 -m pip install cudf-cuda92==0.6
4 S% f$ J- Q8 X4 @9 w5 K8 l
, ^) `+ U; W. j. j$ O # or, for CUDA 10.0
* ?& H2 h& B4 k/ Q python3.6 -m pip install cudf-cuda100==0.6
5 s0 t/ u( C" D/ P
4 q3 g. k' q( ^' Q 注意:只有 Linux 系统支持 cuDF,并且 Python 的版本必须是 3.6 或 3.7 版本。
0 e1 r. }4 @7 o, X& h+ T
via : https://github.com/rapidsai/cudf
' r/ D7 }9 O7 I# x$ j* a 雷锋网雷锋网
2 A; T' f/ Y% L5 c Q( t1 X) G7 V A
: x% `7 z' e3 l8 g1 ^
& M+ e7 O, }/ g
( I* ]( }# q% ~* z; u! c
# }8 J4 m' ~" E9 x% O6 n( `" y