ランダムな選択肢の配列を作成するのに問題があります。選択肢はタプルです。
エラーが表示されます:a must be 1-dimensional
次に例を示します。
choices = ((0,0,0),(255,255,255))
numpy.random.choice(choices,4)
これを行う他の方法はありますか?
期待される結果:
tupleの選択肢からランダムに選択された4つの要素からなるnumpy配列。
((0,0,0),(0,0,0),(255,255,255),(255,255,255))
choice
を使用して1dimindicesを配列に選択し、インデックスを付けます。
指定した例では、可能な選択肢のnumberのみが実際の値(0、255)ではなく、選択肢の性質に影響を与えます。インデックスの選択は1次元の問題であり、choice
はその処理方法を知っています。
choices = numpy.array([[0,0,0],[255,255,255]])
idx = numpy.random.choice(len(choices),4)
choices[idx]
この回答を追加して、non-numpy
ベースの回答:
choices = ((0,0,0),(255,255,255))
from random import choice
print Tuple(choice(choices) for _ in range(4))
交換せずに具体的にサンプリングしたい場合は、以下を試すことができます。
import random
choices = ((0,0,0),(1,1,1),(2,2,2),(3,3,3))
random.sample(choices, 2)