오답노트

[Numpy] 난수로 이루어진 N차원 배열 본문

Python/Numpy

[Numpy] 난수로 이루어진 N차원 배열

권멋져 2022. 7. 8. 16:45

nomal

nomal은 인자로 평균값, 표준편차, 개수를 순서대로 입력한다.

arr = np.random.normal(0,1,10) # 평균값, 표준편차, 개수
print(arr)

위 코드는 평균값이 0이고 표준편차가 1인 난수를 10개 생성한다.

 

rand

rand 함수는 0에서 1사이의 수를 균등하게 생성한다.

인자로는 생성할 난수의 개수를 입력한다.

arr = np.random.rand(1000) # 1000개 난수 생성
plt.hist(arr,bins=100) # import matplotlib.pyplot as plt
plt.show()

2-1. rand 함수의 결과

randn

-1 에서 1 사이에서 정규분포로 난수를 생성한다.

인자로는 생성할 난수의 개수를 입력한다.

arr = np.random.randn(1000) # 1000개 난수 생성
plt.hist(arr,bins=100) # import matplotlib.pyplot as plt
plt.show()

3-1. randn 함수의 결과

randint

정수의 형태의 난수를 생성한다.

인자로 low, high, size를 입력 받고

low 는 시작 정수

high 는 최대 정수 + 1

size 는 난수의 개수이다. size는 행렬의 형태로 입력할 수 있다.

 

또 인자를 1개만 입력할 수 있는데 이는 high 값으로 입력된다.

 

#랜덤한 정수만 출력
arr = np.random.randint(low=1,high=5,size=(3,4))
print(arr)

# 인자 1개일 때 : high 값만 설정되고 정수 1개만 출력
arr = np.random.randint(10)
print(arr)

arr = np.random.randint(100,200,1000) 
plt.hist(arr,bins=100) # import matplotlib.pyplot as plt
plt.show()

 

4-1. randint 함수의 결과

 

seed

난수는 함수를 실행할 때 마다 다른 값을 반환한다.

하지만 seed 함수를 활용하면 함수를 실행할 때 마다 같은 값을 반환할 수 있다.

 

seed는 난수의 기준점을 잡아주는 함수인 것이다.

#seed 함수 사용X
arr = np.random.rand(10)
print("난수1 : ", arr)

arr = np.random.rand(10)
print("난수2 : ", arr)

#seed 함수 사용
np.random.seed(1)
arr = np.random.rand(10)
print("난수1 : ", arr)

np.random.seed(1)
arr = np.random.rand(10)
print("난수2 : ", arr)

위 코드 블록에서 seed는 난수 생성 함수를 사용하기 전에 호출되어야 seed가 적용이 된다.

난수 생성 함수를 호출할 때 마다 seed 함수를 먼저 호출해야 같은 값을 반환 받을 수 있다.

5-1. seed 함수를 사용하지 않은 결과
5-2. seed 함수를 사용한 결과