Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PyConJP 2015: Dask: 軽量並列計算フレームワーク (Lightning ta...
Search
Sinhrks
October 10, 2015
Programming
16k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PyConJP 2015: Dask: 軽量並列計算フレームワーク (Lightning talks)
Sinhrks
October 10, 2015
More Decks by Sinhrks
See All by Sinhrks
daskperiment: Reproducibility for Humans
sinhrks
1
440
PythonとApache Arrow
sinhrks
6
2k
大規模データの機械学習におけるDaskの活用
sinhrks
10
3.3k
機械学習と解釈可能性
sinhrks
7
5.8k
LIME
sinhrks
2
1.5k
データ分析言語R 1年の振り返り
sinhrks
5
2.6k
pandasでのOSS活動事例と最初の一歩
sinhrks
2
20k
Dask Distributedによる分散機械学習
sinhrks
4
1.6k
Data processing using pandas and Dask
sinhrks
1
300
Other Decks in Programming
See All in Programming
Vite+ Unified Toolchain for the Web
naokihaba
0
210
Signal Forms: Beyond the Basics @ngBaguette 2026 in Paris
manfredsteyer
PRO
0
230
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
0
190
AI時代のUIはどこへ行く?その2!
yusukebe
19
7k
OSもどきOS
arkw
0
470
Webフレームワークの ベンチマークについて
yusukebe
0
150
Old Dog, New Tricks: The Java 25 Reinvention - JNation
bazlur_rahman
0
150
net-httpのHTTP/2対応について
naruse
0
460
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
13
3.6k
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
3
1.2k
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
250
3Dシーンの圧縮
fadis
1
680
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
Visualization
eitanlees
152
17k
Navigating Team Friction
lara
192
16k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
150
How to Think Like a Performance Engineer
csswizardry
28
2.6k
GraphQLとの向き合い方2022年版
quramy
50
15k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
320
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
720
Context Engineering - Making Every Token Count
addyosmani
9
950
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.9k
Transcript
Dask ܰྔฒྻܭࢉϑϨʔϜϫʔΫ
ࣗݾհ • Data Analyst • OSS ׆ಈ: • PyData Development
Team (pandasίϛολ) • Blaze Development Team (Daskίϛολ) • GitHub: https://github.com/sinhrks
Dask • ܰྔฒྻࢄϑϨʔϜϫʔΫ (ϊʔυฒྻ͕ओ) • NumPy, PyToolz, pandasͷAPI (αϒηοτ) Λ
ͭσʔλߏΛఏڙ αϒϞδϡʔϧ ϕʔεύοέʔδ EBTLBSSBZ /VN1ZOEBSSBZ EBTLCBH 1Z5PPM[ MJTU TFU EJDUʹର͢Δॲཧ EBTLEBUBGSBNF QBOEBT%BUB'SBNF
DataFrame • pandas.DataFrame: ϥϕϧ͖ͷ2࣍ݩσʔλ • Dask.DataFrame: pandas.DataFrame Λׂͯ͠ ॲཧ QBOEBT%BUB'SBNF
%BTL%BUB'SBNF
Dask DataFrame import pandas as pd df = pd.DataFrame({'X': np.arange(10),
'Y': np.arange(10, 20), 'Z': np.arange(20, 30)}, index=list('abcdefghij')) df import dask.dataframe as dd ddf = dd.from_pandas(df, 2) ddf dd.DataFrame<from_pandas-…, divisions=('a', 'f', 'j')> ߦྻͷ QBOEBT%BUB'SBNFΛ࡞ σʔλΛ෦తʹͭʹׂ͠ɺ %BTL%BUB'SBNFΛ࡞
DaskͰͷܭࢉॲཧ ddf + 1 dd.DataFrame<elemwise-…, divisions=('a', 'f', 'j')> (ddf +
1).compute() EG EEG DPNQVUF EEG શମʹΛՃࢉɻ ࣮ࡍͷܭࢉॲཧ·࣮ͩߦ͞Εͳ͍ ܭࢉΛ࣮ߦ
Blocked Algorithm (Ճࢉ) $PODBU (ddf + 1).compute() ॲཧલͷ
QBOEBT%BUB'SBNF %BTL%BUB'SBNF ʹม ׂ͞Εͨσʔλʹରͯ͠ ܭࢉ࣮ߦ݁ՌΛ݁߹ ॲཧޙͷ QBOEBT%BUB'SBNF
Blocked Algorithm (߹ܭ) ddf.sum().compute() 4VN 4VN $PODBU 4VN TVN ճ
DPODBU TVN ճ
Blocked Algorithm (߹ܭ) ddf.sum().visualize() TVN ճ DPODBU TVN ճ ॲཧલͷ
%BTL%BUB'SBNF
Blocked Algorithm (ฏۉ) ddf.mean().visualize() TVN DPVOU NFBOTVNDPVOU
Blocked Algorithm (ཁ౷ܭྔ) ddf.describe().visualize() ݁Ռ
Dask DataFrameͷػೳ • ࢛ଇԋࢉ/ൺֱԋࢉ • ౷ܭྔ • ϥϕϧʹΑΔσʔλબ • άϧʔϓԽ
/ ू • ࿈݁/݁߹ (merge, join, concat…)
ύϑΥʔϚϯεൺֱ • AWS EC2: c4.2xlarge (vCPU: 8, ϝϞϦ: 15 GiB)
n = 100000000 df = pd.DataFrame({'a': np.random.randint(1, 100, n), 'b': np.random.randn(n)}) df ddf = dd.from_pandas(df, 5) ddf dd.DataFrame<from_pandas-…, divisions=(0, 20000000, 40000000, 60000000, 80000000, 99999999)> ԯߦྻͷ QBOEBT%BUB'SBNFΛ࡞ σʔλΛ෦తʹͭʹׂ͠ɺ %BTL%BUB'SBNFΛ࡞
ύϑΥʔϚϯεൺֱ %timeit df.describe() 1 loops, best of 3: 25.3 s
per loop %timeit ddf.describe().compute() 1 loops, best of 3: 3.87 s per loop QBOEBT %BTL
݁Ռ • ※ percentile ۙࣅΞϧΰϦζϜΛར༻͢ΔͨΊɺ ʹࠩҟ͕ग़Δ߹͕͋Δ () df.describe() ddf.describe().compute() QBOEBT
%BTL
݁Ռ ddf.describe().visualize()
·ͱΊ • Dask: ܰྔฒྻࢄϑϨʔϜϫʔΫ • NumPy, PyToolz, pandas ͷAPIͷαϒηοτΛ ఏڙ
• Ϣʔβ NumPy / PyToolz / pandas ͷ API Λ ར༻ͯ͠ฒྻܭࢉ͕Ͱ͖Δ