Python numpy 강좌 : 제 10강 - 난수

   

무작위 선택


import numpy as np

np.random.seed(76923)

a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
b = np.random.choice(a, 5, replace=False, p=[0, 0, 0, 0, 0.05, 0.05, 0.05, 0.05, 0.8])

print (b)
결과
[9 5 6 7 8]

numpy.random.seed(n)을 이용하여 임의의 시드를 생성할 수 있습니다. 시드 값에 따라 난수와 흡사하지만 항상 같은 결과를 반환합니다.

numpy.random.choice(배열, n, replace=True, p=None)을 이용하여 배열에서 n개의 값을 선택하여 반환할 수 있습니다.

replaceTrue로 사용할 경우, 값이 중복되어 선택되 반환될 수 있습니다. False로 사용할 경우, 값이 중복되지 않습니다.

p를 이용하여 각 데이터가 선택될 확률을 설정할 수 있습니다. p 배열의 길이는 항상 배열의 길이와 같아야합니다.

p값들의 총합은 항상 1이여야 하며, replaceFalse로 사용할 경우, 값이 중복되지 않기 때문에 n개 이상 0의 값과 달라야합니다.


난수 발생


import numpy as np

np.random.seed(76923)

a = np.random.rand(2, 2)
b = np.random.randn(2, 2)
c = np.random.randint(1, 3, (2, 2), dtype=int)

print(a)
print(b)
print(c)
결과
[[0.76367992 0.87641303]
[0.53095238 0.38451373]]
[[-0.15929049 -0.07981017]
[ 1.73777738 -0.47496771]]
[[1 1]
[2 1]]

numpy.random.rand(n, m, ...)을 이용하여 다차원 무작위 배열을 생성할 수 있습니다.

numpy.random.randn(n, m)을 이용하여 표준 정규 분포에서 무작위 배열을 생성할 수 있습니다.

numpy.random.randint(low, high, (n, m), dtype=None)을 이용하여 low ~ high-1 사이의 무작위 (n, m) 크기정수 배열을 반환합니다.


import numpy as np

np.random.seed(76923)

a = np.random.random((2, 3))
b = np.random.sample((2, 3))

print(a)
print(b)
결과
[[0.76367992 0.87641303 0.53095238]
[0.38451373 0.2777934 0.05650517]]
[[0.44143693 0.7142663 0.54434277]
[0.74534435 0.89561778 0.36096285]]

numpy.random.random((n, m))numpy.random.sample((n, m))를 이용하여 0.0 ~ 1.0 사이의 무작위 (n, m) 크기 배열을 반환합니다.


난수 발생


import numpy as np

np.random.seed(76923)

a = np.random.uniform(1, 2, (2, 2))
b = np.random.lognormal(3, 1, (2, 2))
c = np.random.laplace(0, 1, (2, 2))

print(a)
print(b)
print(c)
결과
[[1.76367992 1.87641303]
[1.53095238 1.38451373]]
[[ 17.12791367 18.54480749]
[114.18014024 12.4912986 ]]
[[ 0.09286726 0.67469586]
[ 1.56654873 -0.32583306]]

numpy.random.uniform(low, high, size)를 이용하여 low~high 사이의 균일한 분포의 무작위 배열을 반환합니다.

numpy.random.lognormal(mean, sigma, size)를 이용하여 평균시그마를 대입한 로그 정규 분포의 무작위 배열을 반환합니다.

numpy.random.laplace(loc, scale, size) : μλ를 대입한 라플라스 분포의 무작위 배열을 반환합니다.



도움이 되셨다면 광고 클릭 부탁드립니다.

⤧  Next post Python numpy 강좌 : 제 11강 - 병합 ⤧  Previous post Python numpy 강좌 : 제 9강 - 차원 확장