かえるのプログラミングブログ

プログラミングでつまずいたところとその解決策などを書いていきます。

julia 言語に入門してみた。 (2019/1/11)

かえるるる(@kaeru_nantoka)です。

今回は julia 言語を Jupyter notebook 上で扱えるよう環境構築をしたので備忘として残しておきます。

環境 **

PC : MacBook Air
OS : macOS High Sierra ver 10.13.6

how to **

$ brew cask install julia
$ julia

bash 上で上記コマンドを叩きます。
私の場合は、install した時点で環境変数に登録されていましたので、
すぐに $ Julia でインタラクティブ・セッションに入れました。

julia > ]
(v1.0) pkg > add Conda#master
(v1.0) pkg > add IJulia

julia > のモードに入ったら、] を叩きます。
するとさらにモードが変わるので、残りのコマンドを叩いて完了です。

$ jupyter notebook


f:id:kaeru_nantoka_py:20190111014522p:plain

比べてみる **

julia の特徴はとにかく計算が高速らしいです。

中学校で習うレベルの簡単な計算問題を for 文で回してみました。
まずは、 python

import time
from tqdm import tqdm

start = time.time()

def f(x):
    y = 2 * x + 1
    return 3 * y

for i in tqdm(range(50001)):
    print (f(i))

end = time.time()

print("{} sec".format(end - start))

f:id:kaeru_nantoka_py:20190111023436p:plain

約6.5 sec ... 微妙...100万ループとか気合いの入ったコード書けばよかったですね笑(チキってしまいました。)

それでは、次に julia

@time for i in 1:50000;f(x) = 3(2x+1);println(f(i)); end

f:id:kaeru_nantoka_py:20190111022303p:plain

約1.4 sec 4~5倍も差がついてますね。早いです。

そしてちゃっかり、julia の別な特徴である
「数式をそのままかける(ものもある)」

を盛り込みました。

f:id:kaeru_nantoka_py:20190111024159p:plain

数式チックにかけると言っても、数字がカッコの後ろに来てはいけないなどの簡単なルールがあります。

感想 **

環境構築が簡単 & kaggler だと馴染みの深い人も多かろう Jupyter notebook で実験できるのはとっつきやすいなーという印象でした。

計算の速さを活かして kaggle の前処理なんかに使えていけたらなと思っております。

ちなみに、Jupyter notebook の ju は julia の頭文字らしいです。
https://en.wikipedia.org/wiki/Project_Jupyter

それでは、ありがとうございました。