import numpy as np
import time
x = np.arange(1,10001)
y = np.arange(10001,20001)
# 일반 연산
start = time.time() # 시작 시간 측정
z = np.zeros_like(x)
for i in range(10000):
z[i] = x[i] + y[i]
end = time.time() # 종료 시간 측정
print(z[:10]) # [10002 10004 10006 10008 10010 10012 10014 10016 10018 10020]
print('%.8f sec' %(end-start)) # 0.00582504 sec
벡터화 연산
# 백터화 연산
start = time.time() # 시작 시간 측정
z = x+y
end = time.time() # 종료 시간 측정
print(z[:10]) # [10002 10004 10006 10008 10010 10012 10014 10016 10018 10020]
print('%.8f sec' %(end-start)) # 0.00028110 sec
일반 연산 : 0.00582504 sec
벡터화 연산 : 0.00028110 sec
(연산 시간은 컴퓨터 환경마다 다를 수 있습니다.)
일반 연산과 벡터화 연산은 차이가 많이 나는 걸 알 수 있습니다.
벡터화 연산
논리 연산 가능
a = np.array([1,2,3,4])
b = np.array([4,2,2,4])
print(a==b) # [False True False True]
print(a>b) # [False False True False]
배열 전체 비교 - all
a = np.array([1,2,3,4])
b = np.array([4,2,2,4])
c = np.array([1,2,3,4])
print(np.all(a==b)) # False
print(np.all(a==c)) # True
print(np.all(a!=b)) # False