統計や機械学習に関するプログラミングではPython
やR
が用いられることが多いですが、近年Julia
も注目を集めています。そこで当シリーズではJulia
の基本構文からライブラリの用い方などについて取りまとめます。当記事ではJulia
のタプル型オブジェクトについて取りまとめを行いました。
・Julia
入門
https://www.hello-statisticians.com/julia
・Julia 1.8 Documentation
https://docs.julialang.org/en/v1/
タプル
タプルの生成
タプルは複数の変数などをまとめるオブジェクトで、(1,2,3)
のように括弧を用いて下記のように表記します。
t = (1, 2, 3)
println(t)
・実行結果
(1, 2, 3)
タプルの型の確認や要素の取得は下記のように行うことができます。
println(t[1])
println(typeof(t))
println(typeof(t[1]))
・実行結果
1
Tuple{Int64, Int64, Int64}
Int64
タプルでは下記のように値の変更ができないことに注意が必要です。
t = (1,2,3)
t[1] = 2
・実行結果
MethodError: no method matching setindex!(::Tuple{Int64, Int64, Int64}, ::Int64, ::Int64)
タプルの活用
配列のサイズを確認する際に用いるsize
関数の出力はタプルであることを確認しておくと良いです。
array = rand(3,2)
println(size(array))
println(typeof(size(array)))
・実行結果
(3, 2)
Tuple{Int64, Int64}
また、関数の可変長引数は下記のようにTuple
型のオブジェクトで与えられることも抑えておくと良いです。
f(x...) = x
println(f(1,2,3))
println(typeof(f(1,2,3)))
・実行結果
(1, 2, 3)
Tuple{Int64, Int64, Int64}
名前付きタプル
名前付きタプルは各要素に名前を付けることができるタプルです。名前付きタプルは元々NamedTuples.jl
パッケージで開発されていましたが、Julia 0.7
から標準ライブラリに組み込まれました。名前付きタプルは下記のように用いることができます。
t = (a=1, b=2, c=3)
println(t)
println(t.a)
・実行結果
(a = 1, b = 2, c = 3)
1
名前付きタプルは下記のように値を取得することもできます。
t = (a=1, b=2, c=3)
println(t[2])
println(t[:c])
・実行結果
2
3
また、名前付きタプルのキーと値は下記のようにkeys
関数やvalues
関数を用いて取得できることも抑えておくと良いです。
t = (a=1, b=2, c=3)
println(keys(t))
println(values(t))
・実行結果
(:a, :b, :c)
(1, 2, 3)
参考
・Julia 1.8 Documentation
https://docs.julialang.org/en/v1/