오답노트
[Numpy] 배열의 내적 연산 장점 본문
배열의 내적 연산
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배 차이..
파이썬이 느리다고 하지만 라이브러리 함수를 잘 활용하면 빠르고 쉽게 원하는 결과를 도출 해낼 수 있을 것이다.
'Python > Numpy' 카테고리의 다른 글
[Numpy] 배열의 형태 변경 (0) | 2022.07.14 |
---|---|
[Numpy] 배열의 정렬 (0) | 2022.07.11 |
[Numpy] 브로드캐스팅(Broadcasting) (0) | 2022.07.11 |
[Numpy] 배열의 비교연산 그리고 삼각함수 (0) | 2022.07.11 |
[Numpy] 배열의 최소, 최대, 원소 합, 원소 평균, 표준 편차, 누적 합, 중간 값 연산 (0) | 2022.07.10 |