2017-08-16 4 views
1

は(列からランダムな値を選択するループ書き込み - パイソン

i = np.array(range(1,1701)).reshape(170,10) 

各列から置換無し5つの乱数値をchosesがループを記述する図形(170,10)を有する2Dアレイを作成しますまたは以下のようにIと出力の列のN数):

Group 1: [ 7 37 124 41 17] 
Group 2: [302 261 257 323 234] 
Group 3: [464 486 463 440 474] 

これまでのところ私は、1つの列からランダムな値を引き出すことができます

print(np.random.choice(i[:,0],5 ,replace=False)) 

にはどうすればいいのためのループでこれを入れてnに引っ張るここに表示される出力の列の数(そのため.functionを使用します)

答えて

1

のはshapearange、およびrandom.choice使用してみましょう:このコードものの

Group 1: [1521 231 671 801 711] 
Group 2: [ 612 192 1172 1242 1322] 
Group 3: [ 543 213 1453 723 973] 
Group 4: [ 404 1334 474 294 1044] 
Group 5: [1615 1455 1025 1665 1395] 
Group 6: [1116 1336 1086 1626 536] 
Group 7: [367 347 887 297 237] 
Group 8: [1088 1188 1288 58 608] 
Group 9: [1439 1289 869 349 1589] 
0
for n in xrange(np.shape(i)[-1]): 
    print np.random.choice(i[:, n], 5,replace=False) 

nが列の数ですか。 np.shape [-1]は列の合計数を返します。 xrangeは、ループを介して列の番号を生成するジェネレータオブジェクトです。

ここでのprint文は、最初の列を除いて、すべての列を通り、forループを使用します。

(物事の正しい方法に私を指してくれてありがとうとルネ。)

+1

for c in np.arange(i.shape[1]-1): print('Group {}: '.format(str(c+1)) + str(np.random.choice(i[:,c],5,replace=False))) 

出力をスニペットが問題を解決するかもしれません。[説明を含む](// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)あなたの投稿の品質。将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。あなたのコードに説明的なコメントを詰め込まないようにしてください。これは、コードと説明の両方の可読性を低下させます! – rene

関連する問題