넘파이(NumPy)
넘파이 라이브러리는 C 언어로 구현이 되어 있기 때문에 빠른 배열 처리와 고성능 수치 계산을 지원한다. 주로 벡터 및 행렬 연산에 필요한 기능을 제공한다. 넘파이는 데이터 분석에 필요한 다양한 기능을 포함하고 있으며, 파이썬의 기존 자료 구조보다 효율적인 방법으로 데이터를 다룰 수 있어 팬더스(Pandas)나 맷플롯립(matplotlib.pyplot) 라이브러리에서도 사용하고 있다. 수학적 개념을 넘파이로 표현만 가능하다면 텐서플로 같은 딥러닝 프레임워크 없이도 딥러닝 모델을 구현할 수 있을 정도로 강력하다.
수치 계산을 할 때는 배열이나 행렬을 많이 사용한다. 이때 가장 기본이 되는 단위는 배열이다. 배열은 행렬 개념으로 사용되며, 배열을 생성하려면 넘파이 라이브러리의 array() 함수를 이용한다.

- numpy 모듈을 np라는 이름으로 불러 온다. as 키워드를 사용해 모듈의 별칭을 지정할 수 있다.
- np.array() 함수를 이용해 1차원 배열을 생성한다. 배열은 행렬 개념으로 사용되기 때문에 이후 행렬 산술 연산에 유용하게 사용된다.
- print(arr) --> 생성된 배열을 출력한다.
- print(type(arr)) --> 생성된 배열 타입을 출력한다. array() 함수는 numpy.ndarray 객체로 배열을 만들어 반환한다.

수학에서 행렬(matrix)은 1개 이상의 숫자를 사각형의 배열로 나열한 것을 의미한다. 가로줄을 행(row), 세로줄을 열(column)이라고 하며, 이를 합쳐 행렬이라고 부른다. 대량의 수치 데이터를 연산할 때 행렬을 사용하면 컴퓨터가 효율적으로 처리할 수 있다. 딥러닝에서도 행렬을 이용해 벡터 연산을 하기 때문에 넘파이가 필수로 사용된다.
N차원 배열 역시 array() 함수를 이용하는데, 열 요소들을 대괄호 []로 묶고 마지막에 대괄호 []로 묶은 열 요소들을 다시 한 번 대괄호 []로 묶으면 행렬 구조가 완성된다.




넘파이를 이용하면 스칼라곱도 쉽게 할 수 있다. 여기서 스칼라는 벡터 공간에서 벡터를 곱할 수 있는 양이며 상숫값을 의미한다. 갑자기 벡터 공간이라는 표현이 나왔는데, 벡터 공간도 행렬로 표현 가능하다는 정도만 알고 있으면 된다.


| 조경래(2020), 처음 배우는 딥러닝 챗봇, 한빛미디어(주), 83-89. |
'나의 전공 노트' 카테고리의 다른 글
| 파이썬 / 희소 표현과 분산 표현 (0) | 2022.10.27 |
|---|---|
| 파이썬 / 임베딩(embedding) / 단어 임베딩: 원-핫 인코딩 (0) | 2022.10.27 |
| Kkma 모듈의 함수 설명 / 꼬꼬마 형태소 분석기 사용 연습 (0) | 2022.10.27 |
| 파이썬 | 외부 라이브러리 설치와 확인 (0) | 2022.03.25 |
| 외국어로서의 한국어 | 평가의 기능 (0) | 2022.01.02 |