NumPy의 난수


난수 란 무엇입니까?

난수는 매번 다른 숫자를 의미하지 않습니다. Random은 논리적으로 예측할 수 없는 것을 의미합니다.

의사 랜덤 및 진정한 랜덤.

컴퓨터는 프로그램에 대해 작업하고 프로그램은 명령의 최종 집합입니다. 따라서 난수를 생성하는 알고리즘도 있어야 합니다.

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

생성 알고리즘을 통해 생성된 난수를 의사 난수 라고 합니다.

정말로 난수를 만들 수 있습니까?

예. 컴퓨터에서 진정한 난수를 생성하려면 외부 소스에서 임의의 데이터를 가져와야 합니다. 이 외부 소스는 일반적으로 키 입력, 마우스 움직임, 네트워크의 데이터 등입니다.

보안(예: 암호화 키) 또는 응용 프로그램의 기초가 무작위성(예: 디지털 룰렛 휠)과 관련이 있는 경우가 아니면 진정한 난수가 필요하지 않습니다.

이 튜토리얼에서는 의사 난수를 사용할 것입니다.


난수 생성

NumPy는 random난수와 함께 작동하는 모듈을 제공합니다.

예시

0에서 100 사이의 임의의 정수를 생성합니다.

from numpy import random

x = random.randint(100)

print(x)

임의의 부동 소수점 생성

random 모듈의 rand()메서드는 0과 1 사이의 임의의 부동 소수점을 반환합니다.

예시

0에서 1까지의 임의의 부동 소수점 생성:

from numpy import random

x = random.rand()

print(x)


랜덤 배열 생성

NumPy에서는 배열로 작업하며 위의 예제에서 두 가지 방법을 사용하여 임의의 배열을 만들 수 있습니다.

정수

randint()메서드는 size 배열의 모양을 지정할 수 있는 매개변수를 사용합니다.

예시

0에서 100 사이의 임의의 정수 5개를 포함하는 1차원 배열을 생성합니다.

from numpy import random

x=random.randint(100, size=(5))

print(x)

예시

3개의 행이 있는 2차원 배열을 생성합니다. 각 행에는 0에서 100까지의 임의의 정수 5개가 포함되어 있습니다.

from numpy import random

x = random.randint(100, size=(3, 5))

print(x)

수레

rand()방법을 사용하면 배열의 모양을 지정할 수도 있습니다.

예시

5개의 임의 부동 소수점을 포함하는 1차원 배열을 생성합니다.

from numpy import random

x = random.rand(5)

print(x)

예시

각 행에 5개의 난수가 포함된 3개의 행이 있는 2차원 배열을 생성합니다.

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, 7, 9)의 값으로 구성된 2차원 배열을 생성합니다.

from numpy import random

x = random.choice([3, 5, 7, 9], size=(3, 5))

print(x)