이전 반복에서 값을 업데이트하는 이중 루프의 속도를 높이는 방법이 있습니까? 코드에서파이썬에서 이중 루프 속도 향상
: 보시 외부 루프는 X마다 다른 값으로 시작하면서
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와 y를 업데이트하는 반면 첫 번째 루프는 매 x 다른 값으로 시작한다."- 나는 당신이 무엇인지 잘 모르겠다. 그것으로 말입니다. 특히 "매번 다른 x의 값으로 시작"하고 "첫 번째"또는 "두 번째"루프가 "내부"또는 "외부"와 비교하여 다소 불분명하다는 것을 의미하는 것을 알지 못합니다. 나는 어느 것이 확실하지 않다. – user2357112
죄송합니다.'range'를'xrange'로 바꾸는 것 이상을 생각할 수 없습니다. 아마도 당신은'numpy' 전문가를 유치하기 위해 질문에 현상액을 넣어야합니다 – inspectorG4dget
죄송합니다. 네가 옳아. 첫 번째 또는 두 번째 루프를 변경합니다. 각각의 time_에서 다른 값을 가진 _starts는 외부 루프의 첫 번째 반복이 x = 1.0으로 시작한다는 것을 의미합니다. 그러나 x는 내부 루프에서 수정됩니다. 따라서 외부 루프의 두 번째 반복에서 x는 다른 값입니다. –