2017-11-19 7 views

답변

0

기본 동작은 %timeit이며 더 강력한 결과를 얻으려면 여러 번 실행됩니다.

l = range(100) 
%timeit [i**2 for i in l] 

10000 loops, best of 3: 41.6 µs per loop 

실행되는 루프의 수는 1000이며 실행 시간이 최대 3 회로 제공됩니다.

+0

무엇이 3의 베스트의 의미입니까? 또한 timeit 전에 % 기호가있는 이유는 무엇입니까? –

+0

이것은 ipython에서 사용되는 마법 함수입니다. 모듈을 가져 오지 않고 이런 식으로 사용할 수 있습니다. 또한 범위가 100 이었기 때문에 3 번에서 10000 번까지 실행되어 3 번 중에서 가장 좋은 실행 시간이되었습니다. – bhansa

+0

100의 범위가 3 번 실행되는 이유는 무엇입니까? 범위를 변경하면 루프 수가 변경됩니다. 무엇을 의미합니까? –

1

[i**2 for i in l]%timeit에 의해 10000 회 호출되었습니다.

이 코드 줄을 실행할 때마다 %timeit은 걸리는 시간을 측정합니다. %timeit이 항상 10000 번 작업을 실행하는 것은 아닙니다. 한 번 실행하여 작업을 몇 번 실행해야하는지 결정합니다. 목표는 예상치를 제공하기 위해 1 시간을 필요로하지 않으면 서 충분한 측정을하는 것입니다. l으로 시도하면 %timeit이 1000 번만 실행될 수 있습니다.

컴퓨터가 동시에 다른 작업 (예 : 브라우저, 음악 재생 중 ...)을 수행 중일 수 있으므로 일부 실행은 실제로 느릴 수 있으므로 고려되어서는 안됩니다.

%timeit은 10000 회 중 3 회 최단 실행을 취하고 평균을 표시합니다. 이러한 실행 중에는 컴퓨터가 그다지 많은 일을하지 않았기 때문에 컴퓨터가이 작업에만 집중하는 경우 해당 시간이 시간을 나타낼 수 있습니다.

%은 iPython에게 Python 명령이 아니라 iPython 명령임을 알리기 위해 사용됩니다. 일반적인 파이썬 콘솔에서 시도하면 SyntaxError으로 실패합니다. iPython에 %history을 입력 할 수도 있습니다.

+0

고맙습니다. 나는 아이디어를 얻는다. –