728x90
반응형
난수생성
rand : 0부터 1사이의 균일 분포로 실수 난수를 생성
randn: 기대값이 0이고 표준편차가 1인 가우시안 표준 정규 분포를 따르는 난수를 생성
np.random.seed(정수) # 시작 숫자를 정해 주면 항상 같은 숫자의 난수 발생
np.random.rand(정수x) # 난수 x개 발생
np.random.seed(0) # 시작 숫자를 정해 주어 항상 같은 숫자의 난수 발생
print(np.random.rand(5)) # 난수 5개 발생
# [0.5488135 0.71518937 0.60276338 0.54488318 0.4236548 ]
print(np.random.randn(5))
# [-0.84272405 1.96992445 1.26611853 -0.50587654 2.54520078]
randint: 균일 분포의 정수 난수
numpy.random.randint([low=0,] high[, size=None])
size는 반환되는 배열의 크기
#seed를 정하지 않아 매 실행마다 숫자가 바뀐다.
print(np.random.randint(10)) # int 타입 반환
# 8
print(np.random.randint(10, size=1)) # numpy.ndarray 타입 반환
# [4]
print(np.random.randint(10, size=5))
# [6 5 8 2 3]
print(np.random.randint(10, 20, size=5))
# [19 17 15 13 14]
print(np.random.randint(10, 20, size=(3, 5)))
# [[15 13 13 17 19]
# [19 19 17 13 12]
# [13 19 17 17 15]]
데이터의 순서 바꾸기 np.random.suffle(배열)
x = np.arange(10)
print(x)
# [0 1 2 3 4 5 6 7 8 9]
np.random.shuffle(x) # 데이터 순서 바꿈
print(x)
# [5 7 4 3 6 9 0 8 2 1]
샘플링 sampling
numpy.random.choice(a, size=None, replace=True, p=None)
a : 배열이면 원래의 데이터, 정수이면 arange(a) 명령으로 데이터 생성
size : 반환되는 배열의 크기
replace : 기본값 True, True이면 한번 선택한 데이터를 다시 선택 가능(중복선택)
p : 배열. 각 데이터가 선택될 수 있는 확률 (모든 확률의 합은 1(100%)이 되어야 한다.)
x = np.arange(10)
print(np.random.choice(x, len(x), replace=False)) # shuffle 명령과 같다.
# [9 1 4 2 7 0 6 3 5 8]
print(np.random.choice(5)) # int 타입 반환
# 3
print(np.random.choice(5,1)) # numpy.ndarray 타입 반환
# [4]
print(np.random.choice(5, 5, replace=False)) # 0~5까지 중 5번 선택, 중복x
# [3 4 0 1 2]
print(np.random.choice(5, 3, replace=False)) # 0~5까지 중 3번 선택, 중복x
# [1 3 2]
print(np.random.choice(5, 10)) # 중복허용, 10번 선택
# [3 2 3 0 0 0 3 4 4 2]
print(np.random.choice(5, 10, p=[0.1, 0, 0.3, 0.6, 0])) # 선택 확률을 다르게 해서 10번 선택
# [2 2 3 3 3 2 2 2 3 0]
# 0-10% 1-0% 2-30% 3-60% 4-0% 확률로 선택
# 1,4 는 0%이기때문에 절대 나오지 않는다.
728x90
반응형
'Python 파이썬 > numpy' 카테고리의 다른 글
numpy ) 조건을 이용한 요소 선택(바꾸기) numpy.where() (0) | 2022.03.28 |
---|---|
numpy ) 함수 (0) | 2022.03.19 |
numpy ) 배열 array 인덱싱, 슬라이싱, 반복 (0) | 2022.03.19 |
numpy ) 배열 array 형 변환 (0) | 2022.03.19 |
numpy ) 배열 array 연산 (0) | 2022.03.19 |
댓글