0 Q `) K$ T, v, _5 `
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的 DataFrame 库——cuDF。
4 `% u* r9 x. n# ?/ D
cuDF 是一个基于 Apache Arrow 列内存格式的数据帧库,它是一个 GPU DataFrame 库,可以进行加载,连接,聚合,过滤等数据操作。
; `( `4 E2 \7 o4 l3 X$ ^1 Y
cuDF 提供了类似 pandas 的 API,数据工程师和数据科学家都很熟悉它们,他们可以使用它轻松地加快工作流程,而无需深入了解 CUDA 编程的细节。
- C3 i E- J' o, I. H) O' p z. K
例如,以下代码段下载 CSV,然后使用 GPU 将其解析为行和列并运行计算:
8 s# j2 Z4 K% ~
import cudf, io, requests
2 t& u! }* J! P% H/ F4 M from io import StringIO
' V9 z, K6 {6 v$ T4 z url="https://github.com/plotly/datasets/raw/master/tips.csv"
) y7 c* C) ~/ f/ `; N$ B
3 ?% D( d( \; { content = requests.get(url).content.decode(utf-8)
3 g) w' ], h% y4 f3 i4 o
tips_df = cudf.read_csv(StringIO(content))
tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*100
' a6 K R5 ^' f
+ X! i& Q: G; | # display average tip by dining party size
5 O+ k) {% E+ u# w print(tips_df.groupby(size).tip_percentage.mean())
" a. {8 g. r( d8 L( ]# \5 U: x
* S( U3 [$ ^! I+ f' k3 t
得到的输出为:
$ i |/ |. [9 p# v8 J) }6 y1 W% b" f4 W. L
size
1 |3 T) D3 j4 Q% D2 b
" G- z; p2 k+ U/ Q* g 1 21.729201548727808
$ s6 R% U- |8 J: R; L9 _. ]
- ^/ q& P7 H+ E( e% I: m( L( p' r 2 16.571919173482897
8 ]* ~$ s. G. U9 k; ^2 s
; [. e: L! G6 [- [; L8 i 3 15.215685473711837
7 w, T" S5 ~. W( a% ^, Z& e, @7 b" L* Z: ~; s) o
4 14.594900639351332
% G4 H' i8 z# k+ r
2 o/ v6 P& D% m- o; }0 | 5 14.149548965142023
1 S- t- ^* |; c8 r3 r# V; W/ P- H( `7 ^
6 15.622920072028379
; Q0 ?" l2 \& Y3 e( H2 m0 M
- E& P& K/ n" y, L4 w: B
Name: tip_percentage, dtype: float64
$ ?2 m& a1 ?5 h- L% C& S
; @0 g. O5 z* w3 T 想查看更多示例,可以浏览的完整 API 文档,或查看更详细的说明。
0 T, F7 j6 u2 P) ~$ e 那么如何安装这个工具?请参阅 Demo Docker Repository,根据正在运行的 NVIDIA CUDA 版本选择一个标签。
3 {& W' ^+ L4 U1 V 安装
3 ]1 o4 e& j& p8 U
conda
6 G8 v+ L! k& b$ ]; j/ w* p$ _9 v# X
cuDF 可以通过渠道安装 conda(miniconda,或完整的 Anaconda 发行版) rapidsai:
8 \6 j* k' c) X( D2 ~2 L0 Y
. L2 ~7 ~1 F# u: E: C # for CUDA 9.2
, L. Z0 c+ W z% b8 E. B
conda install -c nvidia -c rapidsai -c numba -c conda-forge -c defaults \
cudf=0.6 python=3.6 cudatoolkit=9.2
1 s0 i! N3 I9 n3 H- A3 d* X: I. }. d. D- Z: v9 P# b7 g* s
# or, for CUDA 10.0
# h5 }0 e M! k3 I% i conda install -c nvidia -c rapidsai -c numba -c conda-forge -c defaults \
. g9 k9 P2 u9 [% }/ Y8 {! W& j% P cudf=0.6 python=3.6 cudatoolkit=10.0
6 d' r8 o9 j6 Q/ P7 G
2 J: `1 _- e! \: \+ t 我们还提供从我们最新开发分支的尖端构建的夜间 conda 包。
" F0 h7 a* c+ ~2 |- v5 ~( L Pip
1 y7 O' r% T/ b9 Q cuDF 也可以用 PyPi 安装。
6 |6 X$ H8 E5 `, y$ y
7 n6 V9 ]+ y( C* Q # for CUDA 9.2
8 q1 a8 P1 f* M3 s& R python3.6 -m pip install cudf-cuda92==0.6
8 a8 f9 S8 t' }2 X9 c
/ O [$ `* W0 t3 W
# or, for CUDA 10.0
, E5 R$ ?9 _- s( u, `, d python3.6 -m pip install cudf-cuda100==0.6
5 [& ~2 s, a8 [
$ |$ ?8 q4 z: i9 F( G 注意:只有 Linux 系统支持 cuDF,并且 Python 的版本必须是 3.6 或 3.7 版本。
- ^- {. Q0 S) S S via : https://github.com/rapidsai/cudf
- R! y; m) Q1 R
雷锋网雷锋网
5 m1 a7 o$ |% e5 y
: V Y! N5 x0 S5 h6 ]! P3 j4 ?, V' l: Z" N
* \0 T% @! t+ ~ U2 M6 |. B" R
) _1 q% v0 P' O