解決したいこと
リストからランダムに値を30個取り出したい。
ただし必ず各要素1つは含まれるように操作したい。
現在の実装方法
下記のように実装しているのですが、もっと効率的・スマートな記述方法がないかご教授頂きたいです。
np2に結果を格納しています。
python
1targets = ['A', 'B', 'C', 'D', 'E'] 2np1 = np.hstack((targets, np.random.choice(targets, 30 - len(targets)))) 3np2 = np.random.choice(np1, 30, replace=False)
期待する出力
・順不同に A B C D E がランダムに30個含まれた配列
・ただし、A B C D E はそれぞれ必ず1つは含まれる
# np2の内容 ['B', 'E', 'D', 'A', 'A', 'B', 'E', 'E', 'A', 'C', 'C', 'E', 'A', 'A', 'B', 'D', 'E', 'A', 'C', 'A', 'A', 'B', 'C', 'D', 'A', 'D', 'A', 'E', 'A', 'E']

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/29 01:36