#선행설치 필요 python, 아나콘다, 주피터노트북 혹은 코랩
Numpy의 경우 np라는 명칭으로 임포트하는 것이 관례입니다.

1) np.array()
Numpy의 핵심은 ndarray입니다. np.array()는 리스트, 튜플, 배열로 부터 ndarray를 생성합니다. 파이썬 자료구조 중 하나인 리스트를 가지고 1차원 배열을 생성해보겠습니다.

2차원 배열을 만들어보겠습니다. 주의할 점은 array() 안에 하나의 리스트만 들어가므로 리스트의 리스트를 넣어야 합니다.

두 배열의 타입을 확인해봅시다.

동일하게 타입이 numpy.ndarray라고 나오게 됩니다. Numpy 배열에는 축의 개수(ndim)와 크기(shape)라는 개념이 존재하는데, 배열의 크기를 정확히 숙지하는 것은 딥 러닝에서 매우 중요합니다.

2) ndarray의 초기화
위에서는 리스트를 가지고 ndarray를 생성했지만 ndarray를 만드는 다양한 다른 방법이 존재합니다. 이 외에도 다양한 방법이 존재하므로 필요에 따라서 다양한 배열을 생성할 수 있습니다.
np.zeros()는 배열의 모든 원소에 0을 삽입합니다.
np.ones()는 배열의 모든 원소에 1을 삽입합니다.

np.full()은 배열에 사용자가 지정한 값을 삽입합니다.

np.eye()는 대각선으로는 1이고 나머지는 0인 2차원 배열을 생성합니다.

np.random.random()은 임의의 값을 가지는 배열을 생성합니다.

이 외에도 Numpy에는 배열을 만드는 다양한 방법이 존재하므로 필요한 방법을 사용하여 배열을 생성할 수 있습니다.
3) np.arange()
np.arange(n)은 0부터 n-1까지의 값을 가지는 배열을 생성합니다.

np.arange(i, j, k)는 i부터 j-1까지 k씩 증가하는 배열을 생성합니다.

4) np.reshape()
np.reshape()은 내부 데이터는 변경하지 않으면서 배열의 구조를 바꿉니다. 0부터 29까지의 숫자를 생성하는 arange(30)을 수행한 후, 원소의 개수가 30개이므로 5행 6열의 행렬로 변경해봅시다.

5) Numpy 슬라이싱
ndarray를 통해 만든 다차원 배열은 파이썬의 자료구조인 리스트처럼 슬라이싱(slicing) 기능을 지원합니다. 슬라이싱 기능을 사용하여 특정 행이나 열들의 원소들을 접근할 수 있습니다.

6) Numpy 정수 인덱싱(integer indexing)
슬라이싱을 사용하면 배열로부터 부분 배열을 추출할 수 있지만, 연속적이지 않은 원소로 배열을 만들 경우에는 슬라이싱으로는 만들 수 없습니다. 예를 들어서 2행 2열의 원소와 5행 5열의 원소를 뽑아서 하나의 배열로 만들고자 하는 경우가 그렇습니다. 이런 경우에는 인덱싱을 사용하여 배열을 구성할 수 있습니다. 인덱싱은 원하는 위치의 원소들을 뽑을 수 있습니다.

특정 위치의 원소만을 가져와봅시다.

특정 위치의 원소 두 개를 가져와 새로운 배열을 만들어봅시다.

7) Numpy 연산
Numpy를 사용하면 배열간 연산을 손쉽게 수행할 수 있습니다. 덧셈, 뺄셈, 곱셈, 나눗셈을 위해서는 연산자 +, -, *, /를 사용할 수 있으며 또는 np.add(), np.subtract(), np.multiply(), np.divide()를 사용할 수도 있습니다.



위에서 *를 통해 수행한 것은 요소별 곱입니다. Numpy에서 벡터와 행렬곱 또는 행렬곱을 위해서는 dot()을 사용해야 합니다.

'인공지능' 카테고리의 다른 글
맷플롯립(Matplotlib) (0) | 2024.05.09 |
---|---|
판다스(Pandas) (0) | 2024.05.07 |
YOLOv5 설치/기본제공모델/커스텀모델학습 (0) | 2024.05.07 |
라벨스튜디오 기본기 (AI 마킹 모델학습) (0) | 2024.05.02 |
머신러닝 이미지 LUT (LOOK UP TABLE) 처리 (0) | 2024.04.28 |