2017-09-30 10 views
0

次の問題があります。変数の経験的確率分布を持つデータフレームの行をサンプリングする

変数が少ないデータフレームがあるとしましょう。 Moroverの1つの変数(var_A)は確率スコアです。値の範囲は0から1までです。このデータフレームの行を、var_Aの値が高い行を選択する可能性が高い方法でサンプリングする必要があります。私はvar_Aの経験的分布から引き出さなければならない。私はhereが提案しているようにvar_Aのedf関数を実装する方法を知っていますが、この分布をどのようにして行をサンプリングするのか分かりません。

これで私を助けてもらえますか?

おかげ

答えて

1

あなたは、このようにサンプリングするnumpy.random.choiceを使用することができます。

import numpy as np 

num_dists = 4 
num_samples = 10 
var_A = np.random.uniform(0, 1, num_dists) 

# ensure var_A sums to 1 
var_A /= np.sum(var_A) 

samples = np.random.choice(len(var_A), num_samples, p=var_A) 

print('var_A: ', var_A) 
print('samples: ', samples) 

出力例:

var_A: [ 0.23262621 0.02990421 0.22357316 0.51389642] 
samples: [3 0 0 2 0 0 2 3 3 2] 
関連する問題