https://docs.scipy.org/doc/numpy-1.15.0/reference/routines.random.html
위 이미지는 scipy에서 numpy 1.15 version으로 numpy.random 함수를 정리해놓은 공식 사이트 URL입니다.
오늘 살펴볼 함수는 간단한 random 함수에 대해서 살펴볼 것입니다.
생각보다 많이 쉬워서 대표적인 것들만을 살펴볼 것입니다.
np.random.rand 함수는 0~1 사이의 값의 uniform distribution 균일 분포, 균등 분포라고 불리는 값을 return 하는 함수입니다.
hyperparameter로 정수 혹은 tuple 형태의 array의 dimension 혹은 shape을 적는 부분으로 optional 즉 굳이 적지 않아도 하나의 값을 리턴하는 것을 확인할 수 있습니다.
쉽죠? 다른 것들도 다 마찬가지입니다.
np.random.randn 함수는 Normal(Gaussian) Distribution 정규 분포, 가우시안 분포라고 불리는 값을 return 하는 함수입니다. 대체로 -1~1사이의 값을 얻습니다.
이 역시 hyperparameter로 정수 혹은 tuple 형태의 array의 dimension 혹은 shape을 적는 부분으로 optional 즉 굳이 적지 않아도 하나의 값을 리턴하는 것을 확인할 수 있습니다.
np.random.randint 함수는 정수 값만을 return 하는 함수입니다.
여기서부터 hyperparameter는 의무적으로 하나 이상을 적어야합니다.
더 자세히 살펴보면 다음과 같습니다.
1) low
가장 작은 범주가 어디서부터 시작하는 지를 적습니다. 다만 1개의 hyperparameter를 적으면 그 값은 가장 높은 범주의 값으로 인식하고 0에서부터 그 숫자 사이의 int를 1개 반환합니다.
만약 high없이 개수를 늘리고 싶다면 다음과 같이 적으면 됩니다.
ex) numpy.random.randint(3, size=10)
2) high
가장 높은 정수를 적은 곳으로 선택사항 optional입니다.
3) size
몇 개의 random 값을 리턴하기 바라는지를 적으면 됩니다. 3개 반환을 받고 싶다면 3개를 적으면 됩니다. 만약 array 형태로 shape을 적고싶다면 다음과 같이 적을 수도 있습니다.
ex) numpy.random.randint(3,10,size=(3,2))
이렇게 적으면 3~10 사이의 정수를 3x2 행렬에 맞게 반환해주세요 라는 뜻이 됩니다.
4) dtype
int를 반환하는 함수이기 때문에 굳이 필요한가 싶지만 이 부분은 int 혹은 int64를 반환할 수 있도록 선택하는 parameter입니다. 때문에 굳이 선택하지 않으셔도 됩니다.
이 부분은 앞에서 1.numpy.random.rand와 비슷한 형태입니다. 다만 다른 점은 1에서 설명한 것은 0~1 사이이지만 여기서는 0~1보다 작은 값의 범주라는 것입니다.
이 부분은 random_sample, randf, sample의 함수와 동일합니다.
hyperparameter로는 이 역시 선택으로 size를 적으면 됩니다.
적지 않아도 1개의 값을 return하고 tuple로 나타낸 array size를 적어도 그 개수만큼 return 함을 알 수 있습니다.
여기까지가 기초적인 random 함수의 종류에 대해서 살펴보았습니다. 사실 가장 많이 사용하는 것은 uniform distribution을 따르는 numpy.random.rand과 normal distribution을 따르는 numpy.random.randn 이 2개가 가장 많이 사용되고 그 다음으로 많이 사용되는 것은 numpy.random.randint입니다.
이 3개를 가장 많이 사용하는 만큼 꼭 기억하시면 편할 것 같네요.
여기까지 읽어주셔서 감사합니다.