줄리아에서 랜덤 추출하는 방법 📂줄리아

줄리아에서 랜덤 추출하는 방법

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
댓글