0 m6 Q8 g7 S5 K' p! f: U5 y
雷锋网 AI 科技评论按,数据处理是数据工程师经常要面对的问题,今天要推荐的是一个和数据处理相关的 DataFrame 库——cuDF。
& c9 t5 r% k# N cuDF 是一个基于 Apache Arrow 列内存格式的数据帧库,它是一个 GPU DataFrame 库,可以进行加载,连接,聚合,过滤等数据操作。
% i" y7 e. l9 D cuDF 提供了类似 pandas 的 API,数据工程师和数据科学家都很熟悉它们,他们可以使用它轻松地加快工作流程,而无需深入了解 CUDA 编程的细节。
4 R" m1 a h5 Z0 | 例如,以下代码段下载 CSV,然后使用 GPU 将其解析为行和列并运行计算:
1 j; v$ z7 H6 ]6 `0 S: G! Q import cudf, io, requests
. b0 B# D0 J! p! H: r; U" ^6 o from io import StringIO
7 w: @; z- b5 D url="https://github.com/plotly/datasets/raw/master/tips.csv"
) Z) H" c* @ r5 G M% K
/ d7 `( h2 B/ y! W/ w. Z; B$ j0 o content = requests.get(url).content.decode(utf-8)
! `3 P' L- z0 g* k0 m2 ]! z' ?- U- q tips_df = cudf.read_csv(StringIO(content))
tips_df[tip_percentage] = tips_df[tip]/tips_df[total_bill]*100
/ I6 k0 x0 ~7 Y; G: B$ |6 g2 E
, J. d/ H! D, w* J6 E& x8 K- s
# display average tip by dining party size
; L$ S& \3 m" f' @4 g print(tips_df.groupby(size).tip_percentage.mean())
! b' t7 N4 [( R1 W" _
8 L+ F* K x/ w4 Q/ B; C 得到的输出为:
+ Q6 d1 ]! k8 [( [8 i
4 |3 F; J. X5 H% Q size
& J) t: } Z6 U9 ]! f; p0 m1 E
4 t% q! _, U7 b9 p+ u3 j 1 21.729201548727808
: F. C2 q. o5 x$ P& S# b5 d' A5 P% H
. Y/ X8 J! n/ h5 s7 d 2 16.571919173482897
+ q3 M q& v+ g6 r/ M: V: t
; ~- K. x9 P" l' F+ a0 E0 B+ Y 3 15.215685473711837
4 C' v# W$ M4 P7 }/ ]# y
9 ~. A+ g# j0 n1 G' c 4 14.594900639351332
9 @' ?! y4 F3 S3 _! A2 V
! a2 x# U \! y I! |
5 14.149548965142023
0 F+ P$ S3 @( s) |
- I# v) w$ ] V9 |& `
6 15.622920072028379
% f) A* M& n! a4 w$ x& L
1 m. t# p& F1 }2 A, H& ~ G: {3 k Name: tip_percentage, dtype: float64
: }' l- A. I) f& x" q# m: h! x
: T: o7 L7 z5 r 想查看更多示例,可以浏览的完整 API 文档,或查看更详细的说明。
. j4 s' Z- w" F- z' ] 那么如何安装这个工具?请参阅 Demo Docker Repository,根据正在运行的 NVIDIA CUDA 版本选择一个标签。
% W2 B# a. K. j) l; R1 J. B' g$ J0 N 安装
, M$ v$ v5 D; x, {- M9 R) g8 T
conda
' [4 z$ F9 X/ }6 [
cuDF 可以通过渠道安装 conda(miniconda,或完整的 Anaconda 发行版) rapidsai:
+ }1 Z# X8 [: H8 a+ [- v
" Q. g, Q2 u" B7 M7 G # for CUDA 9.2
: D4 r# A: _+ Q3 H( j: o0 l
conda install -c nvidia -c rapidsai -c numba -c conda-forge -c defaults \
cudf=0.6 python=3.6 cudatoolkit=9.2
. E1 `& s2 _& P4 [0 Q4 b
* W3 ], w9 l) v( X. C
# or, for CUDA 10.0
' ^, y4 U$ K+ ^% F) G- q conda install -c nvidia -c rapidsai -c numba -c conda-forge -c defaults \
" u- F( J' w/ V% ^! P
cudf=0.6 python=3.6 cudatoolkit=10.0
5 d9 b7 l0 y- a* ^1 b; P4 k7 I8 G& B: X
我们还提供从我们最新开发分支的尖端构建的夜间 conda 包。
/ A. E; K' Z' y8 _4 m4 }
Pip
! `1 A3 U- A+ J) l8 } cuDF 也可以用 PyPi 安装。
2 d* O2 ~) I7 q
$ Y! e9 i7 E& I7 p # for CUDA 9.2
; A$ H+ U, M: [ python3.6 -m pip install cudf-cuda92==0.6
" I& V3 U/ @, T* I# L% v! a' h$ A5 H; z B) C0 Y
# or, for CUDA 10.0
% G! n- W m8 \/ \$ Z" X2 n n python3.6 -m pip install cudf-cuda100==0.6
7 b3 z9 w X3 o: r3 T7 I3 B
" f9 {/ C" A) n F+ b4 a1 \, Q# _ 注意:只有 Linux 系统支持 cuDF,并且 Python 的版本必须是 3.6 或 3.7 版本。
' Z, e- x" a R! O5 u: W- o0 ? via : https://github.com/rapidsai/cudf
5 A/ ?( ? S# g/ x' m+ t
雷锋网雷锋网
$ t: Q- P3 p* `3 ]8 G# j" L, A
" q2 o$ m0 a; b+ D V, t$ o/ Q5 M: m9 t5 J" R" F
# k3 l. M6 `4 g& S% j$ _- _
* Q/ x# X! M0 X& N: G