
346
3
부
금융 데이터 과학
➊
s
변숫값 초기화
➋
0
과
1
사이의 균일 분포 난수를
s
에 포함
➌
평균값 반환
➍
루프의 반복 횟수 정의
➎
함수를 한 번 실행하는 시간
➏
함수를 여러 번 실행하는 시간
➐
함수 대신 복합 리스트문 사용
이 경우의 속도가 다른 방법론에 대한 기준 벤치마크 속도가 된다.
10.1.2
NumPy
NumPy
의 강점은 벡터화 기능이다. 형식적으로 파이썬 수준의 루프는 없어지고 더 깊은 단계에
서
NumPy
를 제공하는 최적화되고 컴파일된 루프를 사용한다.
1
average
_
np
( )
함수가 이런 방
식을 사용한다.
In [7]: import numpy as np
In [8]: def average_np(n):
s = np.random.random(n)
➊
return s.mean()
➋
In [9]: %time average_np(n)
CPU times: user 180 ms, sys: 43.2 ms, total: 223 ms
Wall time: 224 ms
Out[9]: 0.49988861556468317
In [10]: %timeit average_np(n)
128 ms ± 2.01 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
In [11]: s = np.random.random(n)