Jupyter Snippet CB2nd 03_linebyline
Jupyter Snippet CB2nd 03_linebyline
4.3. Profiling your code line-by-line with line_profiler
import numpy as np
%load_ext line_profiler
%%writefile simulation.py
import numpy as np
def step(*shape):
# Create a random n-vector with +1 or -1 values.
return 2 * (np.random.random_sample(shape)<.5) - 1
def simulate(iterations, n=10000):
s = step(iterations, n)
x = np.cumsum(s, axis=0)
bins = np.arange(-30, 30, 1)
y = np.vstack([np.histogram(x[i,:], bins)[0]
for i in range(iterations)])
return y
from simulation import simulate
%lprun -T lprof0 -f simulate simulate(50)
*** Profile printout saved to text file 'lprof0'.
print(open('lprof0', 'r').read())