【Julia入門】Juliaの多次元配列② 多次元配列の基本的な操作

統計や機械学習に関するプログラミングではPythonRが用いられることが多いですが、近年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/