1 X; t; |2 D9 d- x4 T
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的 DataFrame 库——cuDF。
- u3 A# t$ w) q) C; C R
cuDF 是一个基于 Apache Arrow 列内存格式的数据帧库,它是一个 GPU DataFrame 库,可以进行加载,连接,聚合,过滤等数据操作。
- }' k" j6 z% d$ n# x1 K/ @ cuDF 提供了类似 pandas 的 API,数据工程师和数据科学家都很熟悉它们,他们可以使用它轻松地加快工作流程,而无需深入了解 CUDA 编程的细节。
" t5 ]( ?9 b6 g) C) P8 X+ m
例如,以下代码段下载 CSV,然后使用 GPU 将其解析为行和列并运行计算:
% c: U! p- N* I2 e5 v4 F* ]" i
import cudf, io, requests
% D1 ^4 C( t$ D$ J
from io import StringIO
4 \/ U4 N1 r: c2 S; ]
url="https://github.com/plotly/datasets/raw/master/tips.csv"
' N. I' H6 s% I! d# ?! t
7 v2 I* ^, V* G! {/ K8 E- }9 I
content = requests.get(url).content.decode(utf-8)
6 V7 R( X2 y+ u8 d2 @ tips_df = cudf.read_csv(StringIO(content))
tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*100
( b% f6 ~8 V& L
2 ~+ a" S5 {, ?4 r2 A; [0 K # display average tip by dining party size
2 R4 I$ F) b/ d$ D2 P1 k: R; W print(tips_df.groupby(size).tip_percentage.mean())
% B+ K1 O I/ y. S1 \1 @1 P3 W: o' o, ~
得到的输出为:
; m+ O9 d7 d; B
* t8 }* B% F- a. ] size
8 J8 B, a) G5 k' @4 H1 g
8 c" b6 D: J0 {% _6 ^- n" s+ i9 } 1 21.729201548727808
- Q7 k& B4 {5 R0 J
- Z' y, ^( d* E# y 2 16.571919173482897
; w- Q* [/ c1 y: v5 ?1 l8 R
! D( Q! N# W/ t
3 15.215685473711837
3 }" M- M, T/ q6 y2 T# B
4 t2 l; ]2 O3 ~: n. g0 i' d
4 14.594900639351332
6 p: d1 J, T% a5 [% I S9 ]3 d
4 z6 [ s" ?' F8 q$ o 5 14.149548965142023
( l( L0 J2 ~2 I# c, G4 C
$ u- D! W V7 Z4 C$ q 6 15.622920072028379
3 Y, H0 K5 A5 G( e' t4 w8 H
/ G2 k& _* A# s8 Z" f Name: tip_percentage, dtype: float64
, T0 r3 H% {' M, t7 `! o- P+ W J/ A+ B
想查看更多示例,可以浏览的完整 API 文档,或查看更详细的说明。
' G. I1 r1 Z, u1 F- s! x
那么如何安装这个工具?请参阅 Demo Docker Repository,根据正在运行的 NVIDIA CUDA 版本选择一个标签。
% S8 F- v# L9 F, P! ?$ t4 l 安装
* [, C' `% T+ w. q# Y- k) |# r9 a' P conda
. E& {/ F+ W, w! M( p7 P. a cuDF 可以通过渠道安装 conda(miniconda,或完整的 Anaconda 发行版) rapidsai:
: ?, v0 ^% w, _5 ~+ k+ y. A; P: I3 Y V
# for CUDA 9.2
# h# m# |( C( n* x
conda install -c nvidia -c rapidsai -c numba -c conda-forge -c defaults \
cudf=0.6 python=3.6 cudatoolkit=9.2
! Z& n& y# S! O+ Z7 {
" F& C5 r/ e; P3 S, r # or, for CUDA 10.0
7 a d _7 w6 N2 x* w6 b1 H conda install -c nvidia -c rapidsai -c numba -c conda-forge -c defaults \
5 _ d% U* O! p6 s; Q. @! o cudf=0.6 python=3.6 cudatoolkit=10.0
% l6 X9 j* w( F! k
& z/ r' x9 a5 H- b 我们还提供从我们最新开发分支的尖端构建的夜间 conda 包。
6 X# M$ r' W1 I( x) }5 F Pip
# F& f; B/ A( @% K* @ cuDF 也可以用 PyPi 安装。
. F$ o" y( e$ L1 d* z8 ]) a
) A/ `9 T+ }1 @% {
# for CUDA 9.2
/ n" n; m. \1 K. \ python3.6 -m pip install cudf-cuda92==0.6
2 e" N* D$ q9 @; T+ [
# W) T* n7 N( I" _! ], c+ [: [ # or, for CUDA 10.0
/ n& a3 ~3 Y7 s( d0 m; ~7 b, l( H python3.6 -m pip install cudf-cuda100==0.6
6 v, Z: \' U! ~1 x& S
) B8 A0 U1 Y0 n* x$ ]2 Z$ j* _' S
注意:只有 Linux 系统支持 cuDF,并且 Python 的版本必须是 3.6 或 3.7 版本。
+ y: U4 L# H8 {: | via : https://github.com/rapidsai/cudf
5 E1 V, r4 C! j* \- {
雷锋网雷锋网
* ^2 I. l; e0 R4 N" s- V
8 t+ t* X1 U9 d3 ?. ~% D
9 V, p n6 d) d+ [
7 |; A0 ]2 Q8 X- Q1 v- p& ~( E, t4 K9 y1 O$ y. f7 ^