前提・実現したいこと
10 次元の実数の乱数ベクトルを 20 個生成し、それらのベクトルを行方向に積み重ねて 20x10の行列を生成した後、行単位でランダムに行を入れ替えるプログラを作成したいです。
発生している問題・エラーメッセージ
要素をランダムにすることはshuffleでできると思いますが、行をシャッフルするのにうまくいきません。
該当のソースコード
python
1import numpy as np 2import random 3 4array = [] 5for i in range(20): 6 array.append(np.random.randint(0,10,10)) 7 8array2 = np.vstack(array) 9print(array2) 10 11array3 = [] 12 13for _ in range(20): 14 i = np.random.randint(0,21) 15 if not i in array3: 16 array3.append(array2[i]) 17 18array4 = np.vstack(array3) 19print(array4) 20
試したこと
for文で1度array3に格納し、それをまたarray4にてvstackをしようとしましたが、エラーが出てしまいした。
エラーが出るならエラーメッセージを提示しましょう。
出たそのママをコピペで提示しよう
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
このように出てしまいます。
回答1件
あなたの回答
tips
プレビュー