このコードを高速にしたいのですが、for文を使わずに書く書き方が分かりません。
numbaやcythonも試したのですが、全然ダメでした・・・
少しでも早くするにはどうやってコードを改良したらいいでしょうか。
ご教授よろしくお願いいたします。
def func1(N, n): a = np.sort(np.random.choice((np.arange(N)+1), size=n, replace=False)) b = np.array([a[0]] + np.diff(a).tolist() + [N+1-a[-1]]) b = b/(N+1) h = 1 + sum( np.log(b) * b ) / np.log( n + 1 ) return h def func2(N, M, n): H = [] for m in nb.prange(M): h = func1(N = N, n = n) H.append(h) hhh = np.quantile(H, q = 1-0.05) return hhh func2(10000, 20000, 100)
※実行に3.3秒ほどかかっています

回答1件
あなたの回答
tips
プレビュー