🔥

Julia 二元配列の早見表

2022/12/25に公開

配列の作成

julia> Array{Int32}(undef, 2, 3)
2×3 Matrix{Int32}:
 0  0  0
 0  0  0

julia> zeros(Int32, 2, 3)
2×3 Matrix{Int32}:
 0  0  0
 0  0  0

julia> ones(Int32, 2, 3)
2×3 Matrix{Int32}:
 1  1  1
 1  1  1

julia> reshape(1:6, (2, 3))
2×3 reshape(::UnitRange{Int64}, 2, 3) with eltype Int64:
 1  3  5
 2  4  6
 
julia> [1 2 3; 4 5 6]
2×3 Matrix{Int64}:
 1  2  3
 4  5  6

julia> rand(Int32, (2, 3))
2×3 Matrix{Int32}:
  896345269  1411373530  -983811217
 -274245907  -700326381   671891989

julia> fill(2, (2, 3))
2×3 Matrix{Int64}:
 2  2  2
 2  2  2

要素の取得

Juliaは、column-major orderです。また、添字は1から始まります。
下の行列を元に確認します。

A = \begin{pmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ \end{pmatrix}
julia> A = reshape(1:6, (2, 3))
2×3 reshape(::UnitRange{Int64}, 2, 3) with eltype Int64:
 1  3  5
 2  4  6

julia> A[1]
1

julia> A[2]
2

julia> A[3]
3

列や行の単位で値を取得することも出来ます。

julia> A[1, :] # 列単位で値を取得する
3-element Vector{Int64}:
 1
 3
 5

julia> A[:, 1] # 行単位で値を取得する
2-element Vector{Int64}:
 1
 2

要素の追加

ulia> A = reshape(1:6, (2, 3))
2×3 reshape(::UnitRange{Int64}, 2, 3) with eltype Int64:
1  3  5
2  4  6

julia> B = [7 8; 9 10]
2×2 Matrix{Int64}:
7   8
9  10

julia> hcat(A, B) # 列に追加する
2×5 Matrix{Int64}:
1  3  5  7   8
2  4  6  9  10

julia> C = [7 8 9]
1×3 Matrix{Int64}:
7  8  9

julia> vcat(A, C) # 行に追加する
3×3 Matrix{Int64}:
1  3  5
2  4  6
7  8  9

要素の削除

InvertedIndicesライブラリを使う。

julia> using InvertedIndices

julia> A = reshape(1:9, (3, 3))
3×3 reshape(::UnitRange{Int64}, 3, 3) with eltype Int64:
1  4  7
2  5  8
3  6  9

julia> A[:, Not(2)] # 2列目を削除する
3×2 Matrix{Int64}:
1  7
2  8
3  9

julia> A[Not(2), :] # 2行目を削除する
2×3 Matrix{Int64}:
1  4  7
3  6  9

Discussion