L03 - Vectorization Example
import numpy as np
def forloop(x, w):
z = 0.
for i in range(len(x)):
z += x[i] * w[i]
return z
def listcomprehension(x, w):
return sum(x_i*w_i for x_i, w_i in zip(x, w))
def vectorized(x, w):
return x_vec.dot(w_vec)
x, w = [Link](100000), [Link](100000)
x_vec, w_vec = [Link](x), [Link](w)
%timeit -r 100 -n 10 forloop(x, w)
38.7 ms ± 2.34 ms per loop (mean ± std. dev. of 100 runs, 10 loops each)
%timeit -r 100 -n 10 listcomprehension(x, w)
32.3 ms ± 1.81 ms per loop (mean ± std. dev. of 100 runs, 10 loops each)
%timeit -r 100 -n 10 vectorized(x_vec, w_vec)
The slowest run took 13.50 times longer than the fastest. This could mean that an intermediate result is being c
ached.
14.5 µs ± 7.73 µs per loop (mean ± std. dev. of 100 runs, 10 loops each)
Loading [MathJax]/jax/output/CommonHTML/fonts/TeX/[Link]