파라미터 값에 따라 리스트에서 무작위로 데이터를 추출하는 메소드이다.


Numpy.random.choice

Parameters

a : 1-D array-like or int

  • 무작위 추출을 원하는 데이터.
    만약 int 값을 넣을경우 0부터 해당 수까지의 정수배열을 생성한다.

size : int or tuple of ints, optional

  • 추출할 데이터 개수

replace : boolean, optional (default True)

  • 같은 데이터를 또 추출하는 것을 허용할지 말지 결정. 디폴트는 True.

p : 1-D array-like, optional

  • 데이터별로 뽑아올 확률을 지정 할 수 있다.
    추출할 데이터와 길이가 같아야 한다.

사용 예시

import numpy as np;


data = ['A','B','C','D','E'];
size = 5;

result = [];

for i in range(5):
    temp = np.random.choice(data, size, replace=True);
    result.append(temp);
    
print(np.array(result));

# print
array([['D', 'A', 'C', 'B', 'D'],
       ['D', 'E', 'A', 'D', 'A'],
       ['C', 'B', 'A', 'D', 'B'],
       ['D', 'B', 'B', 'C', 'D'],
       ['E', 'E', 'D', 'B', 'C']], dtype='<U1')
size = 5;

result = [];

for i in range(5):
    temp = np.random.choice(5, size, replace=False);
    result.append(temp);
    
print)np.array(result));

# print
array([[4, 0, 2, 1, 3],
       [0, 3, 4, 1, 2],
       [3, 4, 2, 1, 0],
       [0, 2, 1, 4, 3],
       [4, 0, 1, 3, 2]])
data = ['A','B','C','D','E'];
p = [0.8,0,0,0,0.2];
size = 5;

result = [];

for i in range(10):
    temp = np.random.choice(a=data, size=size, replace=True,p=p);
    result.append(temp);
    
print(np.array(result));

# print
array([['E', 'E', 'A', 'A', 'A'],
       ['A', 'A', 'A', 'E', 'A'],
       ['A', 'A', 'A', 'A', 'A'],
       ['A', 'A', 'E', 'E', 'A'],
       ['A', 'E', 'A', 'A', 'A'],
       ['A', 'A', 'A', 'A', 'A'],
       ['A', 'A', 'A', 'A', 'A'],
       ['E', 'E', 'A', 'A', 'E'],
       ['A', 'A', 'A', 'A', 'A'],
       ['A', 'A', 'A', 'A', 'E']], dtype='<U1')

Leave a comment