私の問題は、最も効率的な方法で N ポアソン乱数値 ( RV
) をそれぞれ異なる mean/rate で抽出することLam
です。基本的にはsize(RV) == size(Lam)
.
これは単純な (非常に遅い) 実装です。
import numpy as NP
def multi_rate_poisson(Lam):
rv = NP.zeros(NP.size(Lam))
for i,lam in enumerate(Lam):
rv[i] = NP.random.poisson(lam=lam, size=1)
return rv
私のラップトップでは、1e6サンプルで次のようになります。
Lam = NP.random.rand(1e6) + 1
timeit multi_poisson(Lam)
1 loops, best of 3: 4.82 s per loop
これから改善することは可能ですか?