前の反復から値を更新する二重ループを高速化する方法はありますか?
コード内:
def calc(N, m):
x = 1.0
y = 2.0
container = np.zeros((N, 2))
for i in range(N):
for j in range(m):
x=np.random.gamma(3,1.0/(y*y+4))
y=np.random.normal(1.0/(x+1),1.0/sqrt(x+1))
container[i, 0] = x
container[i, 1] = y
return container
calc(10, 5)
ご覧のとおり、内側のループは変数 x と y を更新していますが、外側のループは毎回異なる値の x で開始しています。これはベクトル化できるとは思いませんが、他にも改善点があるかもしれません。
ありがとう!