2017-11-30 17 views
0

私はデータとラベルと呼ばれる2つのpython np.arraysを持っています。ランダムにサイズを小さくしたいそうするために、私は次のことをしています:ランダムなインデックスを選んで配列を分割するpython

np.random.seed(0) 
ind = np.random.randint(len(data), size=(50000,)) 
reduced_data = data[ind, :] 
reduced_labels = labels[ind] 

私はラベルとデータの両方から無作為に50000を選びます。どうすれば残りのデータを保存できますか?最初の配列から残りのインデックスを見つけることができますか?

mask = np.ones(len(data), dtype=bool) 
mask[ind] = False 
reduced_data = data[~mask] #completely similar to data[ind] 
rest_data = data[mask] 

したい場合は:あなたは「ランダム」サイズを小さくしたい場合

答えて

1

、私はそれとは別に

ブールマスキングを使用して...シードの使用に対して非常に多くなります設定された量だけデータを減らすために、私は次のように考えることができます:

ind = np.arange(len(data)) 
np.random.shuffle(ind) 
ind = ind[:50000] #Or whatever the size is of what you want to reduce 
+0

マスクのサイズはどのようにして決められますか? –

+0

'ind'を指定する方法では、この場合はすでに50000と定義されています。それは完全に真実ではありません、繰り返しが含まれていないので...反復せずに減らしたい場合は、少し考えてください。 – Uvar

+0

ok coolしかしまだ私は種子を使用していますか? –

関連する問題