2017-03-20 10 views

答えて

0

これは、私はあなたがYはあなたのサンプル中の1である行全体を選択することを前提としていたジョブ

import numpy as np 

array = [1,2,3,4] 
number = np.random.choice(array, replace = False) 
print(number) 
idx = np.where(array==number)[0] 
print(idx) 
+0

質問と同じ変数名を使用した場合、これが正しいかどうかを確認する方が簡単です。例えば、 'y = [0,1,1,0,1,0]'、 'X = np.array([10,11,12,13,14,15]'、 'a = 4 'となる。 –

0

を行う必要があります。対応が行のみでリストを作成するために使用され

import numpy as np 
from itertools import compress 
from random import sample 

a = 2 
y = [0, 1, 1, 0, 1, 0, 1, 0, 1, 1] 
X = np.random.rand(10, 3) 

picked = sample(list(compress(X, y)), a) 

itertools.compress、:あなたは、対応するY値は、このような1である行のランダムなサンプルを描くことができますyは1です。次に、サンプル関数を使用して、そのリストからのランダムサンプルを描画します。

0

あなたがそのようにそれを行うことができます:上記のコードで

import numpy as np 
X=np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15]]) 
y=np.array([1,0,1,1,0]) 
a=2 
mat=X[y==1] 
rows = np.random.choice(len(mat), size=a,replace=False) 
mat=mat[rows,:] 
print(mat) 
[[ 7 8 9] 
[10 11 12]] 

mat=X[y==1]yの対応する値が1であるすべての行を選択し、次いでnp.random.choice(len(mat), size=a,replace=False)ランダムa異なる行に選択します。

関連する問題