以下の関数で「sortedlist」と呼ぶ 41000x3 numpy 配列があります。3 番目の列には一連の値があり、その中には重複しているものもあれば、そうでないものもあります。sortedlist[:,2] である 3 番目の列から一意の値 (重複なし) のサンプルを取得したいと思います。これは numpy.random.sample(sortedlist[:,2], sample_size) で簡単にできると思います。問題は、これらの値だけでなく、最後の列に numpy.random.sample から取得したランダムに選択された値がある 3 つの列すべてを返したいことです。
編集: 一意の値とは、一度だけ表示されるランダムな値を選択したいということです。したがって、配列がある場合:
array = [[0, 6, 2]
[5, 3, 9]
[3, 7, 1]
[5, 3, 2]
[3, 1, 1]
[5, 2, 8]]
そして、3 番目の列の 4 つの値を選択したかったので、new_array_1 のようなものを取得したいと考えています。
new_array_1 = [[5, 3, 9]
[3, 7, 1]
[5, 3, 2]
[5, 2, 8]]
しかし、3 列目の 2 つの値が同じである new_array_2 のようなものは必要ありません。
new_array_2 = [[5, 3, 9]
[3, 7, 1]
[5, 3, 2]
[3, 1, 1]]
ランダムな値を選択するコードがありますが、3 番目の列で重複してはならないという基準はありません。
samplesize = 100
rand_sortedlist = sortedlist[np.random.randint(len(sortedlist), size = sample_size),:]]
このようなことをすることで、この基準を強制しようとしています
array_index = where( array[:,2] == sample(SelectionWeight, sample_size) )
しかし、正しい軌道に乗っているかどうかはわかりません。どんな助けでも大歓迎です!