Python でベルヌーイ解決プロセスをシミュレートしようとしています。私はそれのMatlabの例を持っています。専門用語に関係なく、いくつかの確率変数に応じて 0 と 1 の列ベクトルを生成します。
num_trials = 1
b_energy_res = zeros(num_photon,num_trials);
for idx = 1:num_trials
energy_trial = randn(1,1)*energy_sigma+3*energy_sigma;
b_energy_res(:,idx) = rand(num_photons,1)>energy_trial;
end;
t = t+(1-b_energy_res)*1e9;
t = t/1e-12;
0 と 1 を含むベクトルを出力します。
Python で同じことをしようとしましたが、エラーが発生します。また、numpy の配列が 1 と 0 の値の頻度がほぼ同じになるようにしようとしています。両方をチェックするためにヒストグラムを実行できます。属性エラーが発生します:
b_energy_res = np.zeros(num_photon)
energy_trial = np.random.standard_normal() * energy_sigma + 3 * energy_sigma
r = np.random.uniform(0.0,1.0,num_photon)
for i in xrange(int(num_photon)):
if r[i] > energy_trial[i]:
b_energy_res[i] = 1
t = t + (1-b_energy_res)*1e9
t = t*1e12
エラー: 'float' には属性getitemがありません
また、これは私が望むものを生み出していますか?