줄리아에서 랜덤 추출하는 방법
How to Random Sampling in Julia
설명
줄리아에서 무작위 추출하는 방법을 정리한다.
코드
기본
rand(n,m,l,...)
는 각 원소가 $0$부터 $1$사의의 무작위 실수인 $(n,m,l…)$ 크기의 배열을 반환한다. 단 rand((n,m,l,..))
와 같이 $k$개의 인자가 아니라 $k$-튜플을 인자로 입력하면, 튜플의 원소 중 하나를 임의로 뽑는다. 전혀 다른 결과가 나오므로 주의하자.
julia> rand(3)
3-element Vector{Float64}:
0.3690326652578393
0.20252400922469116
0.8272382067218313
julia> rand(3,3)
3×3 Matrix{Float64}:
0.918771 0.172173 0.117402
0.387634 0.836207 0.0323341
0.304328 0.816601 0.885162
julia> rand(2,3,4)
2×3×4 Array{Float64, 3}:
[:, :, 1] =
0.265133 0.238331 0.732378
0.290003 0.567281 0.536599
[:, :, 2] =
0.954018 0.879038 0.290317
0.319847 0.763513 0.703101
[:, :, 3] =
0.766999 0.504227 0.675441
0.490083 0.0791747 0.425424
[:, :, 4] =
0.0457705 0.405896 0.157734
0.218637 0.79505 0.181471
julia> rand((2,3,4))
4
rand()
는 실수를, rand(1)
은 성분이 1개 있는 벡터(1차원 배열)를 반환한다.
julia> rand()
0.42226201756172266
julia> rand(1)
1-element Vector{Float64}:
0.7361136057571305
타입 지정
rand(type, n,m,l,...)
는 지정한 타입으로 $(n,m,l,…)$ 크기의 배열을 반한다.
julia> rand(Int, 3)
3-element Vector{Int64}:
6596411227740380758
-6320180803571983431
-9181276118589871599
julia>
julia> rand(Float32, 2,2)
2×2 Matrix{Float32}:
0.626549 0.615353
0.0303282 0.255745
범위 지정
rand(range, n,m,l,...)
는 주어진 범위 안에서 무작위로 추출한다. 가령 1:10으로 두면 1부터 10까지의 정수 중에서 뽑고, 리스트로 줄 수도 있다.
julia> rand(1:10, 2,2)
2×2 Matrix{Int64}:
6 5
9 2
julia> rand([1,10,100], 2,2)
2×2 Matrix{Int64}:
10 1
100 1
julia> rand(["a", 1, 9], 2,2)
2×2 Matrix{Any}:
1 "a"
"a" 1
댓글