' ^* p$ K# d0 z9 C7 q$ r 雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的 DataFrame 库——cuDF。
$ F2 @, F: N6 n3 ~: `- o
cuDF 是一个基于 Apache Arrow 列内存格式的数据帧库,它是一个 GPU DataFrame 库,可以进行加载,连接,聚合,过滤等数据操作。
+ h7 X0 O+ C$ C
cuDF 提供了类似 pandas 的 API,数据工程师和数据科学家都很熟悉它们,他们可以使用它轻松地加快工作流程,而无需深入了解 CUDA 编程的细节。
" k. _1 ~/ P, }3 ?/ m4 d% D
例如,以下代码段下载 CSV,然后使用 GPU 将其解析为行和列并运行计算:
9 `' z& y7 T1 W y, p9 z3 D, E
import cudf, io, requests
) H& E! e" e- u% c; f4 j* s( I& } N from io import StringIO
& ]/ B* m2 h5 ]$ u
url="https://github.com/plotly/datasets/raw/master/tips.csv"
2 F# M* J0 K: e, m- @6 n. p ~3 {) W! `2 d
content = requests.get(url).content.decode(utf-8)
0 V. o! ~5 f O8 \" _$ @
tips_df = cudf.read_csv(StringIO(content))
tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*100
" p- D8 U: g" T! {: a1 M# u# N3 F% r* A" U6 c
# display average tip by dining party size
1 C4 o( Y/ K3 ~8 ~
print(tips_df.groupby(size).tip_percentage.mean())
/ }( h! d$ }1 ~6 R0 S/ L# F8 {8 a# \' r6 a7 K- s5 p# ?
得到的输出为:
- ]; b( \3 A+ e% K
9 M9 S6 V |" \" E% T size
+ B4 ]( ?3 u. w3 u' x* s: f
! T, ]6 `) U6 ` 1 21.729201548727808
/ R% M* S! j0 y1 r7 b* M+ x- C) f
2 16.571919173482897
' t6 {% k, o1 R% x/ [
* @6 V+ W) ~( p0 M& H$ B, x4 v 3 15.215685473711837
2 s) ]+ x, W# a4 l# w0 o
7 Z$ K$ d# c. Q; [0 k 4 14.594900639351332
) s, p7 u% E& i. D) d
/ I% |: I" [. G( u 5 14.149548965142023
) N' F( r% J" R: v8 G; U- m4 _3 a# W; n2 @( U% p ^, H
6 15.622920072028379
7 A0 O9 ^4 n- }$ C/ `5 s& E' P) l" {' X# B$ ] O
Name: tip_percentage, dtype: float64
- v+ m$ H8 I* x y4 v- S5 j5 |
% M1 g* M3 S( @- k2 o( C 想查看更多示例,可以浏览的完整 API 文档,或查看更详细的说明。
& \. h& b% `5 \5 H/ e+ g: ~ 那么如何安装这个工具?请参阅 Demo Docker Repository,根据正在运行的 NVIDIA CUDA 版本选择一个标签。
. K& j+ {! V8 B3 V) J% |, c: | 安装
1 T$ ^5 A5 k, R9 l) z
conda
, ^2 R. Q0 ^7 c cuDF 可以通过渠道安装 conda(miniconda,或完整的 Anaconda 发行版) rapidsai:
, @, [ }9 E; G
) U7 {4 J9 T5 F) K) Z4 H
# for CUDA 9.2
5 Y v7 R3 |1 C) t conda install -c nvidia -c rapidsai -c numba -c conda-forge -c defaults \
cudf=0.6 python=3.6 cudatoolkit=9.2
\; T; S* Y7 r# ]5 \) [6 h: C! s) Q$ L* v& @$ b
# or, for CUDA 10.0
- R3 B+ w W/ Q conda install -c nvidia -c rapidsai -c numba -c conda-forge -c defaults \
! q* d: Z8 |% M, ]% T# L4 ] cudf=0.6 python=3.6 cudatoolkit=10.0
% j9 a6 w5 R- Z1 F) D$ [' h7 ]8 b2 q
; q5 a' R5 T! p h9 ?! ]& B 我们还提供从我们最新开发分支的尖端构建的夜间 conda 包。
2 }. M9 H! _' T, z2 }0 ]6 A: m6 F) e Pip
* Y% ]5 j1 R: B" ~8 N% a# l& J
cuDF 也可以用 PyPi 安装。
3 B8 h! T/ F! C5 f
f4 O, X+ `' k # for CUDA 9.2
$ `5 D- a4 I2 e
python3.6 -m pip install cudf-cuda92==0.6
9 I' m" D; q1 T$ @0 y$ y
: H2 [' U! e' g3 N' m- ~ # or, for CUDA 10.0
! E* ~; O0 R7 r- b8 J F9 d python3.6 -m pip install cudf-cuda100==0.6
! j! d- l1 k; B2 V$ b6 \) J5 ]. i# c$ \! n
注意:只有 Linux 系统支持 cuDF,并且 Python 的版本必须是 3.6 或 3.7 版本。
, i P. c7 m5 t; |- X9 r
via : https://github.com/rapidsai/cudf
& P/ U! @6 |: k) _
雷锋网雷锋网
: G/ H% H T! r8 k$ O8 W& T( f3 B# Y: O4 k1 i# |* S
# J. W& n! z6 Z1 ~
* l7 y4 t& e& F/ \; A7 i
, t5 ^1 ~1 L0 ^, ?4 t: x( C