SlideShare a Scribd company logo
1 of 19
Download to read offline
AwkでEffective前処理理
Shinya  Akiba
2014/05/27
⾃自⼰己紹介
○研究テーマ  
   スペースデブリの軌道設計  
   Deeplearningを⽤用いた画像認識識  <-‐‑‒  いまここ  
○バイト  
   ALBERT  -‐‑‒  集計、分析のお仕事  
○趣味とか  
   ラグビー、Python、お酒、⿇麻雀
@aki_̲n1wa
秋庭  伸也  
   早稲⽥田⼤大学  -‐‑‒  機械科学専攻  M2
今⽇日話すこと
GLM
階層ベイズ
MCMC
etc..
データ解析
レポート
可視化
論文
今⽇日話すこと
GLM
階層ベイズ
MCMC
etc..
データ解析
レポート
可視化
論文
前
処
理
今⽇日話すこと
データ解析を始める前に… 前処理理!
「面倒な前処理もサクッと解決
 そう、Awkならね。」
(※Awkを使った前処理理の話をします。)
OUTLINE
□Effective前処理理とは  
□Awkって何?  
□Awkプログラミング  
□おまけ
サンプルコード:  
https://github.com/akiniwa/awk_̲preprocess
Effective前処理理とは
1. お⼿手軽  
!
!
2. ファイル⼀一括処理理  
!
!
3. 再現性、⼀一般性
→少ない行数、身近なアプリ
→フォルダ内のファイルを一括で処理したい…
→同じコード書かない、変更に強い(やっぱこのカラム追加して∼)
Effective前処理理とは
1. お⼿手軽  
!
!
2. ファイル⼀一括処理理  
!
!
3. 再現性、⼀一般性
→少ない行数、身近なアプリ
→フォルダ内のファイルを一括で処理したい…
→同じコード書かない、変更に強い(やっぱこのカラム追加して∼)
Awkでできるよ!
Awkって何?
○開発者:  Aho,  Weinberger,  and  Kernighan  
!
○ファイル処理理⾔言語(コマンド)  
!
○Cっぽい構⽂文  
!
○Awkの良良いところ  
   学習曲線ゆるやか  
   ワンライナー  ~∼  数ライナー  
!
○Awkが苦⼿手なこと  
   ちょっと複雑なデータ(リレーショナルとか)  
   *.xlsx
Awkプログラミング
○Awkのイントロ  
○Awkでパターンアクション  
○逆引きAwk  
!
タイタニックのデータを使います。
○全⾏行行表⽰示
awk {print $0} titanic.txt
awkスクリプト 入力ファイル
awk {スクリプト} ファイル名
Awkのイントロ
○基本の形
1⾏行行⽬目  
2⾏行行⽬目  
3⾏行行⽬目  
4⾏行行⽬目  
…
awkスクリプトを⼊入⼒力力ファイルの1⾏行行⽬目から最終⾏行行まで  
1⾏行行ずつ実⾏行行していく。
print $0 →
print $0 →
print $0 →
print $0 →
print $0 →
Awkのイントロ
○名前、年年齢表⽰示
awk {print $4, $6} titanic.txt
4列目、6列目を標準出力へ
$i でi列目を表示。
Awkのパターンアクション
○Williamが含まれる⾏行行を表⽰示
awk /William/{print $0} titanic.txt
awk /William/{print $0} titanic.txt
○パターンアクション
パターン パターンが含まれているときに
スクリプトを実行
Awkのパターンアクション
○⾏行行頭が10,  11,  12,  14で始まる⾏行行を表⽰示
awk '/^1[0-3]/{print $0}' titanic.txt
awk $6>=40{print $0} titanic.txt
○40歳以上を表⽰示
逆引きAwk
○最⼩小値を求める
awk 'NR==2{min=$10}{if($10<min) {min=$10};} END {print min}' titanic.txt
awk '{age+=$6};END{print age/(NR-1)}' titanic.txt
○平均年年齢
終了時に呼ばれる
○乗船場所の重複削除
awk '!colname[$12]++{print $12}'
○乗客IDと年年齢を表⽰示
awk '{print $1, $6}' titanic.txt
種⼦子数データの処理理
# 列方向の合計
for (i=0;i<=NF;i++){
colsum+=$i
}
# 列方向の平均
ave=colsum/NF;
data.RDataを.txtにしたものを使用します。
○列列⽅方向の集計
$ awk -f var.awk rdata.txt	
2.98776 	
$ awk -f sd.awk rdata.txt 	
1.72851
$1, $2, …
全ての列に対して集計できる。
○分散と標準偏差
種⼦子数データの処理理
○ファイル内⼀一括処理理
for t in rdata*.txt	
do 	
	 awk -f sd.awk $t 	
done
all_̲rdata.sh
$ . all_rdata.sh 	
1.72851 	
1.93412 	
1.63108
rdata*.txtに対して実⾏行行
おまけ
○.txtのビジュアライゼーション awk -f graph.awk hist.txt
[shinya@ShineAir:~/Programs/awk_preprocess]$ awk -f graph.awk hist.txt 	
|------------------------------------------------------------------------|	
| |	
| |	
| |	
12 - * |	
| |	
| * |	
| * |	
| |	
| |	
8 - |	
| |	
| |	
| |	
| * |	
4 - * * |	
| |	
| * |	
| |	
| |	
| * |	
|-----------|-----------|------------|-----------|-----------|-----------|	
0 2 4 6 8 	
Poisson hist
参考書籍、URL
!
AWKプログラミング
http://www.geocities.jp/aukjp/awk.html
!
AWKを256倍使うための本
http://ascii.asciimw.jp/books/books/detail/4-7561-0162-3.shtml
ご清聴ありがとうございました。

More Related Content

Similar to Awkでeffective前処理

ML Pipelineで実践機械学習
ML Pipelineで実践機械学習ML Pipelineで実践機械学習
ML Pipelineで実践機械学習Kazuki Taniguchi
 
JAWSUG名古屋 AWS勉強会 20180309
JAWSUG名古屋 AWS勉強会 20180309JAWSUG名古屋 AWS勉強会 20180309
JAWSUG名古屋 AWS勉強会 20180309陽平 山口
 
OCaml でデータ分析
OCaml でデータ分析OCaml でデータ分析
OCaml でデータ分析Akinori Abe
 
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。Akihiro Kuwano
 
データ分析コンペでスキルアップしよう.pdf
データ分析コンペでスキルアップしよう.pdfデータ分析コンペでスキルアップしよう.pdf
データ分析コンペでスキルアップしよう.pdfH. K
 
Scikit-learnを使って 画像分類を行う
Scikit-learnを使って 画像分類を行うScikit-learnを使って 画像分類を行う
Scikit-learnを使って 画像分類を行うArata Honda
 

Similar to Awkでeffective前処理 (7)

ML Pipelineで実践機械学習
ML Pipelineで実践機械学習ML Pipelineで実践機械学習
ML Pipelineで実践機械学習
 
自作GPUへの道
自作GPUへの道自作GPUへの道
自作GPUへの道
 
JAWSUG名古屋 AWS勉強会 20180309
JAWSUG名古屋 AWS勉強会 20180309JAWSUG名古屋 AWS勉強会 20180309
JAWSUG名古屋 AWS勉強会 20180309
 
OCaml でデータ分析
OCaml でデータ分析OCaml でデータ分析
OCaml でデータ分析
 
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
 
データ分析コンペでスキルアップしよう.pdf
データ分析コンペでスキルアップしよう.pdfデータ分析コンペでスキルアップしよう.pdf
データ分析コンペでスキルアップしよう.pdf
 
Scikit-learnを使って 画像分類を行う
Scikit-learnを使って 画像分類を行うScikit-learnを使って 画像分類を行う
Scikit-learnを使って 画像分類を行う
 

Awkでeffective前処理