NumPy의 랜덤 수

랜덤 수는 무엇인가요?

랜덤 수는 항상 다른 숫자를 가지는 것을 의미하지 않습니다. 랜덤은 논리적으로 예측할 수 없는 것을 의미합니다.

가상 랜덤과 진정한 랜덤

컴퓨터는 프로그램에서 작동하며, 프로그램은 권위적인 명령 집합입니다. 따라서 랜덤 수를 생성하기 위해서는 어떤 알고리즘도 있어야 합니다.

랜덤 수를 생성하는 프로그램이 있으면 예측할 수 있으므로, 그것은 진정한 랜덤 수가 아닙니다.

생성 알고리즘을 통해 생성된 랜덤 수는 가상 랜덤 수라고 합니다.

정말로 랜덤 수를 생성할 수 있을까요?

네. 컴퓨터에서 제대로운 랜덤 수를 생성하려면 외부 출처에서 랜덤 데이터를 가져오는 것이 필요합니다. 외부 출처는 우리의 키보드 누르기, 마우스 이동, 네트워크 데이터 등입니다.

안전성(예: 암호화 키)와 같은 것이나, 응용 프로그램의 기본이 랜덤성(예: 디지털 룰렛)이라면 제대로운 랜덤 수가 필요합니다.

이 튜토리얼에서는 가상 랜덤 수를 사용할 것입니다.

랜덤 수 생성

NumPy는 random 모듈을 랜덤 수 처리에 제공합니다.

예제

0에서 100 사이의 랜덤 정수를 생성합니다:

from numpy import random
x = random.randint(100)
print(x)

실제 예제 실행

랜덤 실수 생성

random 모듈의 rand() 메서드는 0에서 1 사이의 랜덤 실수를 반환합니다.

예제

0에서 100 사이의 랜덤 실수를 생성합니다:

from numpy import random
x = random.rand()
print(x)

실제 예제 실행

랜덤 배열 생성

NumPy에서는 예제에서 얻은 두 가지 방법을 사용하여 랜덤 배열을 생성할 수 있습니다.

정수

randint() 메서드는 수락합니다 size 파라미터, 여기서 배열의 형태를 지정할 수 있습니다.

예제

0에서 100 사이의 무작위 정수를 포함하는 1-D 배열을 생성합니다:

from numpy import random
x=random.randint(100, size=(5))
print(x)

실제 예제 실행

예제

3열의 2-D 배열을 생성하여 각 행에 0에서 100 사이의 무작위 정수를 포함합니다:

from numpy import random
x = random.randint(100, size=(3, 5))
print(x)

실제 예제 실행

부동소수점

rand() 메서드는 배열의 형태를 지정할 수도 있습니다.

예제

5개의 무작위 실수를 포함하는 1-D 배열을 생성합니다:

from numpy import random
x = random.rand(5)
print(x)

실제 예제 실행

예제

3열의 2-D 배열을 생성하여 각 행에 5개의 무작위 수를 포함합니다:

from numpy import random
x = random.rand(3, 5)
print(x)

실제 예제 실행

배열에서 무작위 수 생성

choice() 메서드는 값을 기반으로 무작위 값을 생성할 수 있습니다.

choice() 메서드는 배열을 파라미터로 받아 하나의 값을 무작위로 반환합니다.

예제

배열의 값을 하나 반환합니다:

from numpy import random
x = random.choice([3, 5, 7, 9])
print(x)

실제 예제 실행

choice() 메서드는 값 배열을 반환할 수도 있습니다.

추가하십시오 size 파라미터로 배열의 형태를 지정합니다.

예제

수组和(3, 5)를 사용하여 2차원 배열을 생성하는 방법

from numpy import random
x = random.choice([3, 5, 7, 9], size=(3, 5))
print(x)

실제 예제 실행