2016-09-19 3 views
0

私はベクトルのリストがあります:dataからnumpyで使用するリストからn個の要素をランダムに選択するにはどうすればよいですか?

>>> 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つのベクトルを選択する必要があります。

>>> 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でドキュメントをチェックしましたし、このような機能がnumpyにあるかどうかは、random.sample()とわかりませんでした。

numpy.random.sample()random.sample()と同じではありませんか?

numpyrandom.sample()の等価はありますか?

+3

あなたは 'np.random.choice'を探していると思います。 'replace = False'を' random.sample'のように振る必要があります。 – ayhan

+1

何を*したいですか? 'numpy.random.sample'はあなたがしたい(またはしたくない)ことを何にしますか? – BrenBarn

+0

@brenbarn私はランダムにnを選ぶ必要があります。ベクトルのリストからの要素の数。 – alvas

答えて

4

@ayhanが確認されたように、それはのような行うことができます。docsから

>>> 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]]) 

numpy.random.choice(サイズ=なしは、=真置き換えます、p =なし)

与えられた1次元配列からランダムサンプルを生成する

np.random.choice(data, size=3, replace=False)は、dataのインデックスのリストから3つの要素を置換せずに選択します。

次に、data[...]はインデックスをスライスし、np.random.choiceで選択されたインデックスを取得します。

関連する問題