統計や機械学習に関するプログラミングではPython
やR
が用いられることが多いですが、近年Julia
も注目を集めています。そこで当シリーズではJulia
の基本構文からライブラリの用い方などについて取りまとめます。当記事ではモジュールの概要と読み込みについて取りまとめを行いました。
・Julia
入門
https://www.hello-statisticians.com/julia
・Julia 1.8 Documentation
https://docs.julialang.org/en/v1/
Contents
モジュールの概要
概要
モジュール(module)は何らかの機能を実現するソースコードを取りまとめたものです。当記事では以下、Julia
に標準で用意されたモジュールの活用などについて確認を行います。
Mainモジュール
Julia
を実行する際にデフォルトで使用されるのがMain
モジュールです。Main
モジュールでは下記のgcd
のように基本的な関数が含まれます。
println(@__MODULE__)
println(gcd(27,72))
・実行結果
Main
9
上記のgcd
関数は2
つの引数の最大公約数を計算する関数であり、上記では27
と72
の最大公約数である9
が出力されたことが確認できます。
using文と既存モジュールの利用
関数を指定した読み込み
using
文は下記のように『using
モジュール名:
関数名』を実行することでモジュールの読み込みを行います。
using Statistics: mean, std
x = [1, 2, 3, 4, 5]
println(mean(x))
println(std(x))
println(var(x))
・実行結果
3.0
1.5811388300841898
UndefVarError: var not defined
Statistics
モジュールには分散を計算するvar
関数が実装されている一方で、上記ではvar
関数の読み込みを行わなかったのでUndefVarError
が出力されました。このように関数名を指定する場合は指定した関数名のみを読み込むことができます。
モジュール全体の読み込みと注意点
モジュール全体を読み込む場合は下記のように『using
モジュール名』を実行すれば良いです。
using Statistics
x = [1, 2, 3, 4, 5]
println(mean(x))
println(std(x))
println(var(x))
・実行結果
3.0
1.5811388300841898
2.5
上記のようにusing
文を用いてモジュールの読み込みを行う場合、意図しない関数を読みこむ場合が生じやすいです。たとえば上記のStatistics
モジュールのvar
などは他で名称を使用する可能性があり得ます。
このような意図しない関数名の読み込みを行わないようにするにあたっては、前項のusing Statistics: mean, std
ように読み込む関数名を指定するか、下記のようにStatistics
モジュールを読み込むなどの方法があります。
using Statistics: Statistics
x = [1, 2, 3, 4, 5]
println(Statistics.mean(x))
println(Statistics.std(x))
println(Statistics.var(x))
・実行結果
3.0
1.5811388300841898
2.5
参考
・Julia 1.8 Documentation
https://docs.julialang.org/en/v1/