統計や機械学習に関するプログラミングではPython
やR
が用いられることが多いですが、近年Julia
も注目を集めています。そこで当シリーズではJulia
の基本構文からライブラリの用い方などについて取りまとめます。当記事ではJulia
の多次元配列の基本的な操作について取りまとめを行いました。
・Julia
入門
https://www.hello-statisticians.com/julia
・Julia 1.8 Documentation
https://docs.julialang.org/en/v1/
多次元配列の基本操作
多次元配列の属性の取得
多次元配列の属性の取得にあたっては下記の関数などを用いることができます。
関数 | 概要 |
eltype(A) | A の要素の型 |
length(A) | A の要素数 |
ndims(A) | A の次元の数 |
size(A) | A のサイズ |
strides(A) | A のストライド |
配列の変更・複製など
配列の複製などを行う際は下記の関数などを用います。
関数 | 概要 |
fill!(A, x) | 配列A の値にx を割り当てる |
similar(A, T, dims...) | 配列A と類似した配列を生成する |
reshape(A, dims...) | 配列A のサイズを変更する |
copy(A) | 配列A をコピーする |
deepcopy(A) | 配列A をコピーし、要素も再帰的にコピーする |
関数の使用例
多次元配列の属性の取得
それぞれの関数は下記のように実行することができます。
A = zeros(Int64,2,3)
println(2)
println(eltype(A))
println(length(A))
println(ndims(A))
println(size(A))
println(strides(A))
・実行結果
2
Int64
6
2
(2, 3)
(1, 2)
配列の変更・複製など
それぞれの関数は下記のように実行することができます。
A = zeros(Int64,2,3)
println(A)
fill!(A,2)
println(A)
println(similar(A, Int8, 1, 6))
println(reshape(A, 1, 6))
X = copy(A)
println(X)
Y = deepcopy(A)
println(Y)
・実行結果
[0 0 0; 0 0 0]
[2 2 2; 2 2 2]
Int8[48 -105 -116 11 1 0]
[2 2 2 2 2 2]
[2 2 2; 2 2 2]
[2 2 2; 2 2 2]
参考
・Julia 1.8 Documentation
https://docs.julialang.org/en/v1/