2016-09-19 2 views
0

나는 벡터의 목록이 있습니다numpy에서 사용하는 목록에서 임의로 n 개의 요소를 선택하려면 어떻게해야합니까?

>>> import random 
>>> random.sample(data, 3) 
[array([ 0.80716045, 0.84998745, 0.17893211, 0.36206016, 0.69604008, 
     0.27249491, 0.92570247, 0.446499 , 0.34424945, 0.08576628]), array([ 0.18034536, 0.25935541, 0.79718771, 0.28604057, 0.17165293, 
     0.90277904, 0.94016733, 0.15689765, 0.79758063, 0.41250143]), array([ 0.35311449, 0.67901964, 0.71023927, 0.03120829, 0.72864953, 
     0.60717032, 0.8020118 , 0.36047207, 0.46362718, 0.12441942])] 

내가 http://docs.scipy.org/doc/numpy/reference/routines.random.html에서 문서를 확인하고 한 다음 data에서

>>> import numpy as np 
>>> num_dim, num_data = 10, 5 
>>> data = np.random.rand(num_data, num_dim) 
>>> data 
array([[ 0.0498063 , 0.18659463, 0.30563225, 0.99681495, 0.35692358, 
     0.47759707, 0.85755606, 0.39373145, 0.54677259, 0.5168117 ], 
     [ 0.18034536, 0.25935541, 0.79718771, 0.28604057, 0.17165293, 
     0.90277904, 0.94016733, 0.15689765, 0.79758063, 0.41250143], 
     [ 0.80716045, 0.84998745, 0.17893211, 0.36206016, 0.69604008, 
     0.27249491, 0.92570247, 0.446499 , 0.34424945, 0.08576628], 
     [ 0.35311449, 0.67901964, 0.71023927, 0.03120829, 0.72864953, 
     0.60717032, 0.8020118 , 0.36047207, 0.46362718, 0.12441942], 
     [ 0.1955419 , 0.02702753, 0.76828842, 0.5438226 , 0.69407709, 
     0.20865243, 0.12783666, 0.81486189, 0.95583274, 0.30157658]]) 

을, 나는 그것을 할 수있는, 무작위로 3 개 벡터를 선택해야합니다 numpy에 이러한 기능이 있는지 여부는 random.sample()으로 알 수 없습니다.

numpy.random.sample()random.sample()과 같지 않습니까?

numpyrandom.sample()의 등가가 있습니까? @ayhan이 확인 된

+3

나는 당신이'np.random.choice'를 찾고 있다고 생각합니다. 'replace = False'를'random.sample'과 같이 동작 시키려면 전달해야합니다. – ayhan

+1

* 할 일 *을 원하십니까? 'numpy.random.sample'은 당신이 원하는 (또는 원하지 않는) 것은 무엇을 하는가? – BrenBarn

+0

@brenbarn 무작위로 n 번을 선택해야합니다. 벡터 목록의 요소 중 하나입니다. – alvas

답변

4

, 같은 수행 할 수 있습니다

>>> data[np.random.choice(len(data), size=3, replace=False)] 
array([[ 0.80716045, 0.84998745, 0.17893211, 0.36206016, 0.69604008, 
     0.27249491, 0.92570247, 0.446499 , 0.34424945, 0.08576628], 
     [ 0.35311449, 0.67901964, 0.71023927, 0.03120829, 0.72864953, 
     0.60717032, 0.8020118 , 0.36047207, 0.46362718, 0.12441942], 
     [ 0.1955419 , 0.02702753, 0.76828842, 0.5438226 , 0.69407709, 
     0.20865243, 0.12783666, 0.81486189, 0.95583274, 0.30157658]]) 

docs에서 :

numpy.random.choice의 (a, 크기 = 없음, 교체하지 = TRUE , p = 없음)

주어진 1 차원 배열에서 무작위 샘플을 생성합니다.

np.random.choice(data, size=3, replace=False)은 대체하지 않고 data의 색인 목록에서 3 가지 요소를 선택합니다.

그런 다음 data[...]은 인덱스를 슬라이스하여 np.random.choice으로 선택된 인덱스를 검색합니다.

관련 문제