Julia Core.Array

Julia 言語の配列 (Core.Array) は順序があり、名前を持たないコレクションである。

1から始めるJuliaプログラミング

目次

  1. コレクション
  2. 定義
  3. 配列の作成
  4. 要素の参照
  5. イテレーション
  6. 値の変更
  7. 値の追加
  8. Core.Array
  9. Core.typeof
  10. Base.empty!
  11. Base.isempty
  12. Base.length
  13. 参考文献
Juliaプログラミング大全

コレクション

Core.Array はコレクションの一種である。Julia 言語には、以下に示すコレクションがある。

Juliaのコレクション
コレクション 順序 名前 値の重複 要素の追加・変更
Core.Array
Core.NamedTuple
Core.Tuple
Base.Dict
Base.Matrix
Base.Set
Base.Vector

Core.Array は以下に示す特徴を持つ。

上記の特徴を持つコレクションは、一般的に「配列」と呼ばれる。多次元配列を汎用的に扱える Core.Array の他に、1次元配列専用の Base.Vector や2次元配列専用の Base.Matrix といったコレクションもある。

コレクション 説明 備考
Core.Array 多次元配列 Core.Array{T,N}
Base.Matrix 2次元配列 Core.Array{T,2}
Base.Vector 1次元配列 Core.Array{T,1}

定義

Array{T,N} <: AbstractArray{T,N}
T
要素の型
N
配列の次元

配列の作成

Core.Array の生成方法を以下に示す。

julia> x = [1, 2.0, "foo"]
3-element Array{Any,1}:
 1
 2.0
 "foo"

配列の型を指定できる。

julia> x = Float32[1, 2, 3]
3-element Vector{Float32}:
 1.0
 2.0
 3.0

要素の参照

Core.Array の値は、1 から始まる番号を指定して参照できる。

julia> x = [1, 2.0, "foo"]
3-element Array{Any,1}:
 1
 2.0
 "foo"

julia> x[1]
1

イテレーション

Core.Array は先頭から順に値を取り出すことができる。

julia> x = [1, 2.0, "foo"]
3-element Array{Any,1}:
 1
 2.0
 "foo"

julia> for i in x
         println(i)
       end
1
2.0
foo

値の変更

配列の値は変更することができる。

julia> x = [1, 2]
2-element Vector{Int64}:
 1
 2

julia> x[1] = 0
0

julia> x
2-element Vector{Int64}:
 0
 2

値の追加

配列に値を追加することはできない。

julia> x = [1, 2]
2-element Vector{Int64}:
 1
 2

julia> x[3] = 3
ERROR: BoundsError: attempt to access 2-element Vector{Int64} at index [3]

Core.Array

Core.Array メソッドを使って配列を生成できる。

Array{T}(undef, dims)
Array{T,N}(undef, dims)
Array{T}(nothing, dims)
Array{T,N}(nothing, dims)
Array{T}(missing, dims)
Array{T,N}(missing, dims)
T
要素の型
N
配列の次元
undef
要素の初期値を undef とする。
julia> a = Array{Int32}(undef, 2)
2-element Vector{Int32}:
 0
 0

julia> a = Array{Int32, 2}(undef, 2, 3)
2×3 Matrix{Int32}:
 0  0  0
 0  0  0
nothing
要素の初期値を nothing とする。要素の型 (T) に Core.Nothing を含める必要がある。
missing
要素の初期値を missing とする。要素の型 (T) に Base.Missing を含める必要がある。
dims
各次元の要素数

Core.typeof

Core.typeof 関数を使って、配列内の要素の型を確認できる。

julia> x = [1, 2, 3]
3-element Vector{Int64}:
 1
 2
 3

julia> typeof(x)
Vector{Int64} (alias for Array{Int64, 1})

Base.empty!

Base.empty! 関数を使って、配列の要素を空にすることができる。

julia> x = [1, 2, 3]
3-element Vector{Int64}:
 1
 2
 3

julia> empty!(x)
Int64[]

julia> x
Int64[]

Base.isempty

Base.isempty 関数を使って、配列が空かどうかを確認できる。

julia> x = []
Any[]

julia> isempty(x)
true

julia>  x = [1, 2, 3]
3-element Vector{Int64}:
 1
 2
 3

julia> isempty(x)
false

Base.length

Base.length 関数を使って、配列の要素数を確認できる。

julia>  x = [1, 2, 3]
3-element Vector{Int64}:
 1
 2
 3

julia> length(x)
3

参考文献

JuliaLang.org contributors (2023) Julia Documentation

実践Julia入門