SlideShare a Scribd company logo
1 of 53
Download to read offline
Julia 100本ノック
#JuliaTokyo
Michiaki ARIGA(@chezou)
JuliaTokyo #1 @ BrainPad 2014/07/05
自己紹介
Michiaki ARIGA (@chezou / github:chezou)

Software Engineer at Cookpad Inc.

Interest

自然言語処理 / レコメンデーション

やってます

kawasaki.rb / Machine Learning Casual Talks
代表作
http://wp.me/pvR30-iT
お断り
お品書
私とJulia

Julia 100本ノック

Julia情報の調べ方
私と
http://www.slideshare.net/chezou/ruby-28923469
http://wp.me/pvR30-r0
知ってた
Gadfly使ったら
D3.jsでグラフ書けるらしい
調べてみた
http://www.slideshare.net/chezou/hajipata-julia
訳してみた
http://wp.me/pvR30-sG
Julia100本ノック
Julia 100本ノック
https://github.com/chezou/julia-100-exercises
Julia 100本ノック
https://github.com/chezou/julia-100-exercises
Julia version of 100 numpy exercises
https://github.com/rougier/numpy-100
!
nbviewerで実行結果みれます
http://nbviewer.ipython.org/github/chezou/julia-100-
exercises/blob/master/julia-100-exercises.ipynb
!
小並感記事も書きました
http://wp.me/pvR30-tN
+演算子の違い
Z = np.zeros((5,5))
Z += np.arange(5)
(zeros(Int64,5,5) .+ [0:4])'
[y for x in 1:5, y in 0:4]
行列の要素の加算は`.+`を使う
Packageを必要とする例
Z = np.ones(10)
I = np.random.randint(0,len(Z),20)
Z += np.bincount(I, minlength=len(Z))
using StatsBase
Z = ones(10)
I = rand(0:length(Z), 20)
Z += counts(I, 1:length(Z))
欠損値有りのデータ読み込み
1,2,3,4,5
6,,,7,8
,,9,10,11
using DataFrames
readtable("missing.dat")
Z = np.genfromtxt("missing.dat", delimiter=",")
NAを扱えるのはDataArraysを使わないといけない
チェッカーボード
Z = np.zeros((8,8),dtype=int)
Z[1::2,::2] = 1
Z[::2,1::2] = 1
Z = zeros(Int64,8,8)
Z[1:2:end, 2:2:end] = 1
Z[2:2:end, 1:2:end] = 1
[julia-user] から📩
チェッカーボード
Z = np.zeros((8,8),dtype=int)
Z[1::2,::2] = 1
Z[::2,1::2] = 1
print Z
Z = zeros(Int64,8,8)
Z[1:2:end, 2:2:end] = 1
Z[2:2:end, 1:2:end] = 1
Z
[(i+j)%2 for i=1:8, j=1:8]
||
0.0417 sec
2.83e-6 sec
Are they on Julia way?
Julia情報の調べ方
調べるべき所
公式ドキュメント

関連パッケージ(using google)

特にStatsBase.jl, DataFrame.jlなど重要なもの

githubのissue / Mailing List

MATLAB / NumPyでどう書くか?

John myles white
http://julia.readthedocs.org/en/latest/manual/
http://statsbasejl.readthedocs.org/en/latest/
http://www.mathworks.co.jp/jp/help/matlab/index.html
http://mathesaurus.sourceforge.net/matlab-numpy.html
http://stackoverflow.com/questions/21890893/reading-csv-in-julia-is-slow-
compared-to-python/21910850#21910850
http://stackoverflow.com/questions/21890893/reading-csv-in-julia-is-slow-
compared-to-python/21910850#21910850
NumPy, MATLABとの比較
Juliaはまだまだパッケージが少ない

Pythonよりストイックな一面も

遅いとreject, 複数のやり方は好まない?

変化が早い

ググラビリティ低い
Pythonよりストイック
変化が早い
MATLAB Julia
ググラビリティ低い
みなさん
ワンチャンあるで
Juliaのリスク
現状確認
Julia Tシャツはヤバイ
Pull-Reqお待ちしてます!
https://github.com/chezou/julia-100-exercises

More Related Content

Viewers also liked

パーソナライズニュースを支えるML業務のまわしかた@Yahoo! JAPAN
パーソナライズニュースを支えるML業務のまわしかた@Yahoo! JAPANパーソナライズニュースを支えるML業務のまわしかた@Yahoo! JAPAN
パーソナライズニュースを支えるML業務のまわしかた@Yahoo! JAPANYahoo!デベロッパーネットワーク
 
Jubatusにおける機械学習のテスト@MLCT
Jubatusにおける機械学習のテスト@MLCTJubatusにおける機械学習のテスト@MLCT
Jubatusにおける機械学習のテスト@MLCTYuya Unno
 
Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)
Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)
Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)Kenta Sato
 
Juliaのススメ
JuliaのススメJuliaのススメ
JuliaのススメAi Makabi
 
Juliaを使った機械学習
Juliaを使った機械学習Juliaを使った機械学習
Juliaを使った機械学習Aki Ariga
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual TalksYuya Unno
 
Ehsan parallel accelerator-dec2015
Ehsan parallel accelerator-dec2015Ehsan parallel accelerator-dec2015
Ehsan parallel accelerator-dec2015Christian Peel
 
Angular jsとsinatraでturbolinks
Angular jsとsinatraでturbolinksAngular jsとsinatraでturbolinks
Angular jsとsinatraでturbolinksMinori Tokuda
 
はじめて翻訳記事を書いたら300ブクマ超えた話
はじめて翻訳記事を書いたら300ブクマ超えた話はじめて翻訳記事を書いたら300ブクマ超えた話
はじめて翻訳記事を書いたら300ブクマ超えた話Aki Ariga
 
gsub with ActiveSupport::SafeBuffer
gsub with ActiveSupport::SafeBuffergsub with ActiveSupport::SafeBuffer
gsub with ActiveSupport::SafeBufferAki Ariga
 
Gong anyware
Gong anywareGong anyware
Gong anywareAki Ariga
 
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup ) Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup ) Ai Makabi
 
Rによる統計解析と可視化
Rによる統計解析と可視化Rによる統計解析と可視化
Rによる統計解析と可視化弘毅 露崎
 
第6章 2つの平均値を比較する - TokyoR #28
第6章 2つの平均値を比較する - TokyoR #28第6章 2つの平均値を比較する - TokyoR #28
第6章 2つの平均値を比較する - TokyoR #28horihorio
 
今年のKDDベストペーパーを実装・公開しました
今年のKDDベストペーパーを実装・公開しました今年のKDDベストペーパーを実装・公開しました
今年のKDDベストペーパーを実装・公開しましたShohei Hido
 
機械学習CROSS 後半資料
機械学習CROSS 後半資料機械学習CROSS 後半資料
機械学習CROSS 後半資料Shohei Hido
 
PFIセミナー "「失敗の本質」を読む"発表資料
PFIセミナー "「失敗の本質」を読む"発表資料PFIセミナー "「失敗の本質」を読む"発表資料
PFIセミナー "「失敗の本質」を読む"発表資料Shohei Hido
 
Camp report for_kwskrb
Camp report for_kwskrbCamp report for_kwskrb
Camp report for_kwskrbrojiuratech
 

Viewers also liked (20)

パーソナライズニュースを支えるML業務のまわしかた@Yahoo! JAPAN
パーソナライズニュースを支えるML業務のまわしかた@Yahoo! JAPANパーソナライズニュースを支えるML業務のまわしかた@Yahoo! JAPAN
パーソナライズニュースを支えるML業務のまわしかた@Yahoo! JAPAN
 
Jubatusにおける機械学習のテスト@MLCT
Jubatusにおける機械学習のテスト@MLCTJubatusにおける機械学習のテスト@MLCT
Jubatusにおける機械学習のテスト@MLCT
 
Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)
Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)
Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)
 
Juliaのススメ
JuliaのススメJuliaのススメ
Juliaのススメ
 
Juliaを使った機械学習
Juliaを使った機械学習Juliaを使った機械学習
Juliaを使った機械学習
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks
 
Ehsan parallel accelerator-dec2015
Ehsan parallel accelerator-dec2015Ehsan parallel accelerator-dec2015
Ehsan parallel accelerator-dec2015
 
Angular jsとsinatraでturbolinks
Angular jsとsinatraでturbolinksAngular jsとsinatraでturbolinks
Angular jsとsinatraでturbolinks
 
はじめて翻訳記事を書いたら300ブクマ超えた話
はじめて翻訳記事を書いたら300ブクマ超えた話はじめて翻訳記事を書いたら300ブクマ超えた話
はじめて翻訳記事を書いたら300ブクマ超えた話
 
gsub with ActiveSupport::SafeBuffer
gsub with ActiveSupport::SafeBuffergsub with ActiveSupport::SafeBuffer
gsub with ActiveSupport::SafeBuffer
 
Gong anyware
Gong anywareGong anyware
Gong anyware
 
JuliaでGLM
JuliaでGLMJuliaでGLM
JuliaでGLM
 
Juliaで並列計算
Juliaで並列計算Juliaで並列計算
Juliaで並列計算
 
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup ) Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
 
Rによる統計解析と可視化
Rによる統計解析と可視化Rによる統計解析と可視化
Rによる統計解析と可視化
 
第6章 2つの平均値を比較する - TokyoR #28
第6章 2つの平均値を比較する - TokyoR #28第6章 2つの平均値を比較する - TokyoR #28
第6章 2つの平均値を比較する - TokyoR #28
 
今年のKDDベストペーパーを実装・公開しました
今年のKDDベストペーパーを実装・公開しました今年のKDDベストペーパーを実装・公開しました
今年のKDDベストペーパーを実装・公開しました
 
機械学習CROSS 後半資料
機械学習CROSS 後半資料機械学習CROSS 後半資料
機械学習CROSS 後半資料
 
PFIセミナー "「失敗の本質」を読む"発表資料
PFIセミナー "「失敗の本質」を読む"発表資料PFIセミナー "「失敗の本質」を読む"発表資料
PFIセミナー "「失敗の本質」を読む"発表資料
 
Camp report for_kwskrb
Camp report for_kwskrbCamp report for_kwskrb
Camp report for_kwskrb
 

More from Aki Ariga

Challenges for machine learning systems toward continuous improvement
Challenges for machine learning systems toward continuous improvementChallenges for machine learning systems toward continuous improvement
Challenges for machine learning systems toward continuous improvementAki Ariga
 
Managing Machine Learning workflows on Treasure Data
Managing Machine Learning workflows on Treasure DataManaging Machine Learning workflows on Treasure Data
Managing Machine Learning workflows on Treasure DataAki Ariga
 
仕事ではじめる機械学習
仕事ではじめる機械学習仕事ではじめる機械学習
仕事ではじめる機械学習Aki Ariga
 
主人が外資系IT企業に転職して4ヶ月が過ぎました
主人が外資系IT企業に転職して4ヶ月が過ぎました主人が外資系IT企業に転職して4ヶ月が過ぎました
主人が外資系IT企業に転職して4ヶ月が過ぎましたAki Ariga
 
R&D at Foodtech company - #CookpadTechConf 2016
R&D at Foodtech company - #CookpadTechConf 2016R&D at Foodtech company - #CookpadTechConf 2016
R&D at Foodtech company - #CookpadTechConf 2016Aki Ariga
 
Why I started Machine Learning Casual Talks? #MLCT
Why I started Machine Learning Casual Talks? #MLCTWhy I started Machine Learning Casual Talks? #MLCT
Why I started Machine Learning Casual Talks? #MLCTAki Ariga
 
クックパッドサマーインターン2015 機械学習・自然言語処理 実習課題
クックパッドサマーインターン2015 機械学習・自然言語処理 実習課題クックパッドサマーインターン2015 機械学習・自然言語処理 実習課題
クックパッドサマーインターン2015 機械学習・自然言語処理 実習課題Aki Ariga
 
Rubyistがgemの前にPypiデビューするのは間違っているだろうか
Rubyistがgemの前にPypiデビューするのは間違っているだろうかRubyistがgemの前にPypiデビューするのは間違っているだろうか
Rubyistがgemの前にPypiデビューするのは間違っているだろうかAki Ariga
 
Machine Learning Casual Talks Intro #MLCT
Machine Learning Casual Talks Intro #MLCTMachine Learning Casual Talks Intro #MLCT
Machine Learning Casual Talks Intro #MLCTAki Ariga
 
Make Julia more popular in Japan!!1 #JuliaTokyo
Make Julia more popular in Japan!!1 #JuliaTokyoMake Julia more popular in Japan!!1 #JuliaTokyo
Make Julia more popular in Japan!!1 #JuliaTokyoAki Ariga
 
Refrection of kawasaki.rb
Refrection of kawasaki.rbRefrection of kawasaki.rb
Refrection of kawasaki.rbAki Ariga
 
Introduction and benchmarking of MeCab.jl #JapanR
Introduction and benchmarking of MeCab.jl  #JapanRIntroduction and benchmarking of MeCab.jl  #JapanR
Introduction and benchmarking of MeCab.jl #JapanRAki Ariga
 
Recommendation for iruby #tqrk08
Recommendation for iruby #tqrk08Recommendation for iruby #tqrk08
Recommendation for iruby #tqrk08Aki Ariga
 
The book that changed me
The book that changed meThe book that changed me
The book that changed meAki Ariga
 
Introduction of Mecab.jl #JuliaTokyo
Introduction of Mecab.jl #JuliaTokyoIntroduction of Mecab.jl #JuliaTokyo
Introduction of Mecab.jl #JuliaTokyoAki Ariga
 
なぜ科学計算にはPythonか?
なぜ科学計算にはPythonか?なぜ科学計算にはPythonか?
なぜ科学計算にはPythonか?Aki Ariga
 
Active ModelとNaive Bayesを仲良くする
baby_faceを使ってみた
Active ModelとNaive Bayesを仲良くする
baby_faceを使ってみたActive ModelとNaive Bayesを仲良くする
baby_faceを使ってみた
Active ModelとNaive Bayesを仲良くする
baby_faceを使ってみたAki Ariga
 
Rubyと機械学習の現状
Rubyと機械学習の現状Rubyと機械学習の現状
Rubyと機械学習の現状Aki Ariga
 

More from Aki Ariga (18)

Challenges for machine learning systems toward continuous improvement
Challenges for machine learning systems toward continuous improvementChallenges for machine learning systems toward continuous improvement
Challenges for machine learning systems toward continuous improvement
 
Managing Machine Learning workflows on Treasure Data
Managing Machine Learning workflows on Treasure DataManaging Machine Learning workflows on Treasure Data
Managing Machine Learning workflows on Treasure Data
 
仕事ではじめる機械学習
仕事ではじめる機械学習仕事ではじめる機械学習
仕事ではじめる機械学習
 
主人が外資系IT企業に転職して4ヶ月が過ぎました
主人が外資系IT企業に転職して4ヶ月が過ぎました主人が外資系IT企業に転職して4ヶ月が過ぎました
主人が外資系IT企業に転職して4ヶ月が過ぎました
 
R&D at Foodtech company - #CookpadTechConf 2016
R&D at Foodtech company - #CookpadTechConf 2016R&D at Foodtech company - #CookpadTechConf 2016
R&D at Foodtech company - #CookpadTechConf 2016
 
Why I started Machine Learning Casual Talks? #MLCT
Why I started Machine Learning Casual Talks? #MLCTWhy I started Machine Learning Casual Talks? #MLCT
Why I started Machine Learning Casual Talks? #MLCT
 
クックパッドサマーインターン2015 機械学習・自然言語処理 実習課題
クックパッドサマーインターン2015 機械学習・自然言語処理 実習課題クックパッドサマーインターン2015 機械学習・自然言語処理 実習課題
クックパッドサマーインターン2015 機械学習・自然言語処理 実習課題
 
Rubyistがgemの前にPypiデビューするのは間違っているだろうか
Rubyistがgemの前にPypiデビューするのは間違っているだろうかRubyistがgemの前にPypiデビューするのは間違っているだろうか
Rubyistがgemの前にPypiデビューするのは間違っているだろうか
 
Machine Learning Casual Talks Intro #MLCT
Machine Learning Casual Talks Intro #MLCTMachine Learning Casual Talks Intro #MLCT
Machine Learning Casual Talks Intro #MLCT
 
Make Julia more popular in Japan!!1 #JuliaTokyo
Make Julia more popular in Japan!!1 #JuliaTokyoMake Julia more popular in Japan!!1 #JuliaTokyo
Make Julia more popular in Japan!!1 #JuliaTokyo
 
Refrection of kawasaki.rb
Refrection of kawasaki.rbRefrection of kawasaki.rb
Refrection of kawasaki.rb
 
Introduction and benchmarking of MeCab.jl #JapanR
Introduction and benchmarking of MeCab.jl  #JapanRIntroduction and benchmarking of MeCab.jl  #JapanR
Introduction and benchmarking of MeCab.jl #JapanR
 
Recommendation for iruby #tqrk08
Recommendation for iruby #tqrk08Recommendation for iruby #tqrk08
Recommendation for iruby #tqrk08
 
The book that changed me
The book that changed meThe book that changed me
The book that changed me
 
Introduction of Mecab.jl #JuliaTokyo
Introduction of Mecab.jl #JuliaTokyoIntroduction of Mecab.jl #JuliaTokyo
Introduction of Mecab.jl #JuliaTokyo
 
なぜ科学計算にはPythonか?
なぜ科学計算にはPythonか?なぜ科学計算にはPythonか?
なぜ科学計算にはPythonか?
 
Active ModelとNaive Bayesを仲良くする
baby_faceを使ってみた
Active ModelとNaive Bayesを仲良くする
baby_faceを使ってみたActive ModelとNaive Bayesを仲良くする
baby_faceを使ってみた
Active ModelとNaive Bayesを仲良くする
baby_faceを使ってみた
 
Rubyと機械学習の現状
Rubyと機械学習の現状Rubyと機械学習の現状
Rubyと機械学習の現状
 

Julia 100 exercises #JuliaTokyo