2014年11月6日木曜日

Julia Array操作の基本をメモ。

Pythonでやっていたlistの操作にすっかり慣れてしまったけど、JuliaのArrayではどうやるか確かめる。
Julia0.3で試して動いたものを掲載。

配列の生成

a = [i for i in 1:10]     #1から10を要素に持つ配列生成
a = [1:10]                #同上
b = reshape([1:9], (3,3)) #3x3の2次元配列。
b = [1 2 3; 4 5 6; 7 8 9] #3x3の2次元配列。上とは行、列が逆(転置の関係)

要素数

length(a)

要素アクセス

a[1]
a[1:end]   #要素1から最後まで
a[2:3:8] #要素2から8を3個おきに

追加,挿入

push!(a, 13)         #要素と同じ型追加
append!(a, [1,2,3])  #末尾に[1,2,3]を追加
prepend!(a, [1,2,3]) #先頭に[1,2,3]を追加
insert!(a, 3, 15)    #3番目に15を挿入する。(要素数は増える)
vcat(a, [11,12,13])  #aに末尾に[11,12,13]を追加(aは非破壊になる)
hcat(b, [10,11,12])  #bに列を追加
vcat(b, [10,11,12]') #bに行を追加('は転置)
要素数があらかじめわかっているなら、始めに配列を確保して代入したほうが速いっぽい。

置換

a[1] = 15
a[1:4] = [4,4,4,4]
#a[2:5]を削除して[0,0,0]を挿入。戻り値は削除した元のaの[2:5]の値。
splice!(a, 2:5, [0,0,0]) 

削除

shift!(a)  #最初の要素を削除
pop!(a)    #最後の要素を削除

検索

3 in a
findfirst(a, 4) #はじめに4が出る要素番号、なければ0を返す
findin(a, 4)    #4の存在する要素数をArrayに入れて返す)

0 件のコメント:

コメントを投稿