딥러닝 공부 시작하면서 공부하는 파이썬 소소한 팁
list comprehension
zip + reduce 사용하자( enumerate, zip, for loop 속도 측정)
%%timeit
import numpy as np
e1 = np.array([1, 0, 0])
e2 = np.array([0, 1, 0])
e3 = np.array([0, 0, 1])
a1 = 3
a2 = 1
a3 = 4
import functools
functools.reduce(lambda a, b : a + b, [component * vectors[i] for i, component in enumerate(components)])
3.94 µs ± 905 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
%%timeit
a = np.zeros(3)
for i in range(len(components)):
a += components[i] * vectors[i]
6.82 µs ± 185 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
%%timeit
import functools
functools.reduce(lambda a, b : a + b, [c * v for c, v in zip(components, vectors)])
3.62 µs ± 185 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)