-
Python numpy 함수 np.dot() 가 동작하는 내부 원리프로그래머스문제정리 & Python잡다한것 2021. 5. 19. 21:17728x90반응형
np.dot()
vectorization을 사용하기 위해서 numpy 라이브러리에서 제공하는 dot()을 분석해 보았다.
공식 문서 : https://numpy.org/devdocs/reference/generated/numpy.dot.html
사용방법 : numpy.dot(a, b, out = None)
numpy의 array 객체를 곱할 때 사용한다.
1차원 끼리의 곱 : 각 자리수 끼리 곱해서 합을 구한다.(내적)
2차원 끼리의 곱 : 일반적 행렬의 곱셈을 수행한다.
한쪽이 scalar 값 : 곱셈과 동일한 기능을 한다.
Paramters
a, b : array 를 의미
out : ndarray(optional) 여기에 변수를 지정하면 반환될 때 값을 저장할 수 있다.
원리
일반적으로 Numpy의 특정 몇개 api(dot 등등)에는 멀티 코어 머신을 활용하는 BLAS(블라스)를 이용한 백엔드 parallelization이 구현되어있다고 한다. 또한 일반적으로 캐시 메모리 및 오셈블러 구현을 활용해서 하드웨어에서 최대한 빠르게 실행되도록 조정된 라이브러리라고 한다.
(BLAS : 선형대수 라이브러리들을 위한 로우레벨 루틴의 사실상 표준으로, c와 포트란 버젼 모두에 바인딩된 버젼이 있음)
어째뜬 병렬로 계산된다는 것이 핵심.
반응형'프로그래머스문제정리 & Python잡다한것' 카테고리의 다른 글
프로그래머스[Python] - 괄호변환, 예상 대진표, 뉴스 클러스터링, 튜플 (0) 2021.07.12 Python 백준 2252 - 줄 세우기(위상 정렬) (0) 2021.06.04 가장 큰 수 - 프로그래머스[Level 2], 코드 비교하기 (0) 2021.05.13 Python ASCII 값 출력하기 (백준 11654) (0) 2020.12.31 Python 16,2,8진수에서 10진수 변환,10진수에서 16,2,8진수(진수 변환) (0) 2020.09.14