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)