2 개의 중첩 된 루프가 Python에서 매우 느리게 작동한다는 것을 알았습니다. CPU 부하는 약 0 %를 유지하지만 여전히 느리게 작동합니다. 왜? 어떻게 해결할 수 있습니까?중첩 된 루프는 Python에서 너무 느리게 작동합니다.
초기화 (그것이 빨리 작동하도록 언급 안) :
이a = imresize(image, (maxY, maxX), 'lanczos')
b = imresize(image, (maxY * 2, maxX), 'lanczos')
느린 코드 :
result = np.empty((maxY, maxX, 3), dtype=np.uint16)
for y in range(maxY):
for x in range(maxX):
result[y, x] = [a[y, x], a[y, x], a[y, x]]
그리고이 하나 더 느리게 작동합니다
result = np.empty((maxY, maxX, 3), dtype=np.uint16)
for y in range(maxY):
for x in range(maxX):
result[y, x] = [a[y, x], b[y*2, x], b[y*2+1, x]]
동일한 결과를 얻는 다른 효과적인 코드가 있습니까?
a의 모양은 (299, 299), b - (598, 299), 결과 - (299, 299, 3)입니다. 약 5000 번 코드를 호출하고 (데이터 양에 대해 약 10 분을 기다린다).
내가 제공된 코드에 주석을 달면 모든 것이 입니다.
1) 알고리즘 수정, 2) numpy 사용 3) CPython 사용은 모든 옵션입니다. 더 많은 정보가 없으면 무엇이든 말하기가 어렵습니다. –
해당 변수에 대한 정보가 없거나 CPU 부하 평가가 제공됩니다 ... – sascha
항상, 항상 *, ** 항상 ** 모든 요소에 대해 작업을 수행 할 때 NumPy를 사용하십시오. 배열. – o11c