f_
frhyme.code
•python-libs•⏱ 약 1분 소요

Numpyp - random multiple choice

중복없이 n개의 값을 뽑는 방법

  • 바구니에 n개의 서로 다른 공이 들어 있습니다. 이 공에서 3개의 공을 뽑고싶은데 어떻게 코딩해야 하나요?
  • 처음에는 약간 어렵게 다음처럼 해야 한다고 생각했는데요.
import numpy as np 

cands = [i for i in range(0, 10)]

def selection(basket, n):
    new_basket = basket.copy()
    r_lst = []
    for i in range(0, n):
        temp = new_basket.pop(np.random.choice([i for i in range(0, len(new_basket))]))
        r_lst.append(temp)
    return r_lst

print( selection(cands, 10) )
[8, 6, 1, 4, 0, 7, 3, 5, 9, 2]

간단하게

  • 그냥 있는 함수를 쓰면 됩니다 하하핫.
import numpy as np 

cands = [i for i in range(0, 10)]
np.random.choice(cands, 10, replace=False)
array([4, 2, 0, 8, 9, 6, 5, 3, 7, 1])
GitHub에서 이 글의 마크다운 원본 보기 & 수정 제안src/content/posts/2018-07-26-random_multiple_choice

💡RELATED ARTICLES · 함께 읽으면 좋은 연관 포스트

글 주소가 클립보드에 복사되었습니다.