私のgoogle-fuが失敗しました! arr2d
の各行についてnumpy配列で値をランダムに列方向に割り当てる方法
arr2d = np.zeros((10,10))
Iは1
に3つのランダム列を割り当てる、次のよう Iは0
に初期10×10 numpyの配列を有します。
for row in arr2d:
rand_cols = np.random.randint(0,9,3)
row[rand_cols] = 1
出力:
array([[ 0., 0., 0., 0., 0., 0., 1., 1., 1., 0.],
[ 0., 0., 0., 0., 1., 0., 0., 0., 1., 0.],
[ 0., 0., 1., 0., 1., 1., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 1., 1., 1., 0., 0., 0.],
[ 1., 0., 0., 1., 1., 0., 0., 0., 0., 0.],
[ 1., 0., 1., 1., 0., 0., 0., 0., 0., 0.],
[ 0., 1., 0., 0., 0., 0., 1., 0., 1., 0.],
[ 0., 0., 1., 0., 1., 0., 0., 0., 1., 0.],
[ 1., 0., 0., 0., 0., 0., 1., 1., 0., 0.],
[ 0., 1., 0., 0., 1., 0., 0., 1., 0., 0.]])
numpyのまたは配列のインデックスを活用する方法はあります/スライスは、よりに同じ結果を達成するために、私は次のようにループを使用してそれを行うことができますよPython /エレガントな方法(コードの1行または2行にあることが望ましい)?
あなたの行の1つに2つの '1 'しかないことに気付きましたか?これは 'randint(0,9,3)'が繰り返し値を持つサンプルを生成する場合に起こります。それはあなたが欲しいものですか? –
それで、いずれのソリューションもあなたのために機能しましたか? – Divakar