반응형
소개
np.random.choice(a, size=None, replace=True, p=None) 함수는 주어진 배열 a에서 임의로 원소를 선택하는 함수입니다. 크기 size와 선택 여부에 따라 단일 원소 또는 여러 원소를 반환할 수 있으며, 선택이 중복될지 여부와 각 원소의 선택 확률 p도 지정할 수 있습니다. 이 함수는 데이터 샘플링, 시뮬레이션, 임의 선택 작업 등에 널리 사용됩니다.
기본 사용법
import numpy as np
# 배열에서 임의의 값 1개 선택
array = np.array([1, 2, 3, 4, 5])
random_choice = np.random.choice(array)
# 배열에서 3개의 값 중복 없이 선택
random_choices_no_replace = np.random.choice(array, size=3, replace=False)
# 배열에서 각 값이 선택될 확률 지정
random_choices_with_prob = np.random.choice(array, size=3, p=[0.1, 0.2, 0.3, 0.2, 0.2])
print("임의로 선택된 값:", random_choice)
print("중복 없이 선택된 값:", random_choices_no_replace)
print("확률 기반 선택된 값:", random_choices_with_prob)
상세 설명
- a: 값이 선택될 원본 배열입니다. 1차원 배열이어야 하며, 그 안의 원소들 중에서 무작위로 선택이 이루어집니다.
- 예시: np.random.choice([1, 2, 3])은 [1, 2, 3]에서 임의로 한 값을 선택합니다.
- size (선택사항): 반환할 샘플의 크기를 지정합니다. 값이 하나 선택될 경우 None으로 기본값이 설정됩니다.
- 예시: np.random.choice([1, 2, 3], size=2)는 2개의 임의 값을 선택합니다.
- replace (선택사항): True로 설정하면 중복 선택이 허용되며, False로 설정하면 중복 없이 선택됩니다.
- 예시: np.random.choice([1, 2, 3], size=2, replace=False)는 중복 없이 두 값을 선택합니다.
- p (선택사항): 각 원소가 선택될 확률을 지정하는 배열입니다. 확률 배열은 a와 같은 크기를 가져야 하며, 모든 확률의 합은 1이어야 합니다.
- 예시: np.random.choice([1, 2, 3], size=2, p=[0.1, 0.7, 0.2])은 각 값에 지정된 확률로 값을 선택합니다.
- 활용
- 데이터 샘플링: 특정 데이터셋에서 무작위로 표본을 선택하거나 테스트 데이터셋을 만들 때 유용합니다.
- 시뮬레이션 및 게임 개발: 확률 기반의 이벤트 선택, 복권 번호 추첨, 카드 섞기 등의 시뮬레이션 작업에 사용할 수 있습니다.
- 모델링 및 머신러닝: 무작위로 데이터 샘플을 추출해 훈련 데이터 또는 검증 데이터를 생성하는 데 활용됩니다.
라이센스
NumPy는 BSD-3-Clause 라이센스를 따릅니다. 자유롭게 사용, 수정, 배포할 수 있으며 상업적 목적으로도 사용할 수 있습니다. 라이센스와 저작권 정보는 NumPy의 공식 GitHub 리포지토리에서 확인할 수 있습니다.
관련 내용
[NumPy] 배열에서 임의 값 추출하기: np.random.choice() 사용 및 설명
[NumPy] 정수 난수 배열 생성하기: np.random.randint() 사용 및 설명
반응형
'함수 설명 > 기본 및 범용' 카테고리의 다른 글
[NumPy] 저장된 배열 불러오기: np.load() 사용 및 설명 (0) | 2024.10.04 |
---|---|
[NumPy] 배열을 파일로 저장하기: np.save() 사용 및 설명 (0) | 2024.10.04 |
[NumPy] 정수 난수 배열 생성하기: np.random.randint() 사용 및 설명 (1) | 2024.10.03 |
[NumPy] 표준 정규 분포 난수 배열 생성하기: np.random.randn() 사용 및 설명 (0) | 2024.10.03 |
[NumPy] 랜덤한 배열 생성 생성하기: np.random.rand() 사용 및 설명 (0) | 2024.10.03 |