더북(TheBook)

최근 버전의 주피터는 %timeit 결과에 대한 평균과 표준편차 값을 제공합니다. 그러나 파이썬의 코어 개발자들과 문서 제작자들은 timeit 결과를 분석하는 데 다른 방법을 선호합니다. 그들은 (1) 최고 성능 수준을 파악하기 위해 여러 번의 실행 중 최솟값을 취하거나 (2) 요약 없이 전체 결과 모두를 살펴봅니다. 저는 데이터 분석에서는 언제나 방법 (2)가 더 좋다고 생각합니다. 평균이나 표준편차는 이상치(outlier)에 휘둘리기 쉽습니다. 또 평균과 표준편차는 정규 분포를 따르는 데이터는 잘 표현하지만 다른 분포는 완전히 다른 방식으로 표현되어야 합니다. 그 예로 체비쇼프의 불평등도를 더 자세히 알아보세요. 저는 주피터가 중앙값(50분위)과 사분범위(inter-quartile ranges)(25분위와 75분위 사이)를 출력하면 더 좋을 것 같습니다. 이 값들은 특이 값에 견고하고 데이터 분포에 대한 가정에 기반하지 않거든요.

1000번 루프를 실행한 timeit 결과는 어땠나요? 본질적으로 우리는 똑같은 잠재적으로 짧은 수명을 가진 작업 여러 개를 쌓아서 더 긴 시간 돌아가는 유사 -작업을 만들어 내는 것입니다. 이 장기 실행 작업은 운영 체제의 타이밍 기능이 지원하는 수준에서 더 잘 돌아갑니다. 해시계를 사용해서 100야드 달리기를 측정한다고 상상해 보세요. 시간을 재는 단위가 달라 측정이 매우 어려울 것입니다. 작업을 반복할수록 우리 달리기 선수는 지쳐 가겠지만, 다행스럽게도 파이썬은 계속 달리고 이 과정에서 의미 있는 측정 결과를 얻을 수도 있습니다. number를 지정하지 않으면, timeit은 더 좋은 수치를 찾으려고 노력할 것입니다. 이것은 number 값을 높이려고 시도하기 때문에 시간이 걸릴 수도 있습니다. timeit과 더불어 사용할 수 있는 repeat 값도 있습니다. repeat은 전체 프로세스를 감싸는 외부 루프입니다. 이전 단락에서 살펴보았던 통계량 산출에 관한 것입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.