🚀 Languege/Python

python - numpy(12) 백터화 연산

mini_world 2020. 3. 30. 18:57
목차 접기

 

백터화 연산 속도 측정!

 

import numpy as np

x = np.arange(1, 10001)
y = np.arange(10001,20001)

z = np.zeros_like(x)

for i in range(10000):
    z[i] = x[1]+y[i]
print(z)

z=x+y
print(z)


# ==================================
# 속도 측정
def runTime1():
    import timeit
    start = timeit.default_timer()
    for i in range(10000):
        z[i] = x[1] + y[i]
    end = timeit.default_timer()
    print('sum vector:', (end-start))

def runTime2():
    import timeit
    start = timeit.default_timer()
    z = x + y
    end = timeit.default_timer()
    print('vectorize:', (end-start))

runTime1()
runTime2()

 

 

[코드 실행 결과]

[10003 10004 10005 ... 20000 20001 20002]
[10002 10004 10006 ... 29996 29998 30000]
sum vector: 0.005121769999999998
vectorize: 3.2527000000004413e-05

 

 

 

그래서.. 백터화연산이 더 빠르다!

728x90