오답노트

[Numpy] 배열의 내적 연산 장점 본문

Python/Numpy

[Numpy] 배열의 내적 연산 장점

권멋져 2022. 7. 11. 18:33

배열의 내적 연산

https://dhjkl123.tistory.com/165
 

[Numpy] 배열의 내적, 절대 값, 소수 관련 연산

내적 연산 / dot product 수학에서 사용하고있는 행렬의 내적 연산을 사용한다. dot 함수를 사용하여 내적 연산을 수행한다. 1차원 배열 내적 연산 스칼라 값이 반환된다. #1차원 행렬 내적 arr1 = np.arra

dhjkl123.tistory.com

 

for 문과 속도 비교

for 문으로도 배열의 내적 연산을 구현할 수 있다.

하지만 Numpy의 함수로 사용하면 더 빠르게 연산처리를 할 수 있다.

선택 사항이 아니라 필수 사항이 될 정도로..

 

import time
arr = np.arange(99999999)

sum = 0
before = time.time()

for i in arr:
  sum += i

after = time.time()

print(sum, after - before,"초") # 17.835256099700928 초

for 문으로 원소의 모든 합을 구하는 로직이다. 17초 걸린다.

 

before = time.time()

sum = np.sum(arr)

after = time.time()

print(sum, after - before,"초") # 0.17969465255737305 초

sum 함수 또한 원소의 모든 합을 구하는 함수다. 0.17초 걸린다. for문과 100배 차이난다..

 

before = time.time()

for i,j in zip(arr1,arr2):
  sum += i*j

after = time.time()

print(sum, after - before,"초") # 31.060548543930054 초

dot product를 구하는 로직이다. 31초 걸린다.

 

before = time.time()

sum = np.dot(arr1,arr2)

after = time.time()

print(sum, after - before,"초") # 0.33187341690063477 초

dot product를 구하는 dot 함수를 사용했다. 0.33초.. for문과 역시 100배 차이..

 

파이썬이 느리다고 하지만 라이브러리 함수를 잘 활용하면 빠르고 쉽게 원하는 결과를 도출 해낼 수 있을 것이다.