일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- tensorflow
- numpy
- Docker
- Computer Vision
- 웹 프로그래밍
- MariaDB
- Web Programming
- Deep Learning
- 논문 리뷰
- kubernetes
- k8s
- FLASK
- 데이터베이스
- yaml
- Tkinter
- Django
- 딥러닝
- 파이썬
- GUI
- paper review
- 파이토치
- 컴퓨터 비전
- Python
- pytorch
- vue.js
- 장고
- 텐서플로우
- OpenCV
- 그래픽 유저 인터페이스
- POD
- Today
- Total
Maxima's Lab
[Python] 1-1. Numpy (넘파이) - ndarray & reshape 본문
안녕하세요, 오늘은 Numpy (넘파이)의 "ndarray" 에 대하여 알아보겠습니다.
여기 ndarray는 N-dimensional array (즉, N차원 배열)를 의미합니다.
먼저, 다음과 같이 예시를 들어보겠습니다.
▶ 1차원 배열 및 다차원 배열의 예시
- 1차원 배열의 예시
import numpy as np
array_a = np.array([1, 2, 3])
print(type(array_a))
print(array_a.ndim)
Output :
<class 'numpy.ndarray'>
1
위의 결과와 같이 type() 함수를 통해 numpy.ndarray 라는 것을 확인하였고, .ndim을 통해 배열 차원의 수를 확인하였습니다.
조금 더 차원의 수가 많은 경우는 다음과 같습니다.
- 다차원 배열의 예시
import numpy as np
array_a = np.random.randint(0, 256, (64, 64, 3))
print(type(array_a))
print(array_a.ndim)
Output :
<class 'numpy.ndarray'>
3
위의 예시는 이미지를 다룰 때 많이 사용하는 (Height, Width, Channel)의 형태와 유사하게 3-차원 배열을 생성하였습니다.
(참고로, np.random.randint() 함수를 통해 0이상 256미만의 정수를 무작위로 생성하여 size=(64, 64, 3)로 배열을 만들었다고 생각해주시면 됩니다.)
▶ N 차원 배열에 reshape 적용 하기
N차원 배열에 적용하는 reshape()라는 함수를 사용하여 새로운 shape으로 변환 시켜주는 과정을 진행해보겠습니다.
import numpy as np
array_a = np.random.randint(0, 256, (100, 64, 64, 3))
print(array_a.shape)
print(array_a.reshape(64, 3, 64, 100).shape)
Output :
(100, 64, 64, 3)
(64, 3, 64, 100)
위의 예시와 같이, 기존 배열의 shape을 구성하는 숫자를 모두 이용하여, reshape를 할수도 있으며, 다음과 같이 shape을 구성하는 숫자 또는 각 차원을 구성하는 숫자를 곱한 값인 (100*64*64*3)의 약수들을 이용해서 reshape를 할 수도 있습니다.
import numpy as np
array_a = np.random.randint(0, 256, (100, 64, 64, 3))
print(array_a.shape)
print(array_a.reshape(-1, 32, 5).shape)
Output :
(100, 64, 64, 3)
(7680, 32, 5)
위의 예시와 같이, (100 * 64 * 64 * 3) = 1,228,800의 약수들인 32와 5를 사용하였으며,
-1이라는 숫자는 1,228,800 / (32 * 5) = 7680 값으로 나머지 shape을 구성한다고 보시면 됩니다
오늘은 Numpy(넘파이)의 ndarray (N-차원 배열)을 생성하는 방법에 대해서 알아보고 해당 배열들의 shape을 변환하는 방법에 대해서 알아보았습니다.
'Python > Numpy' 카테고리의 다른 글
[Python] 1-2. Numpy (넘파이) - ndarray & expand_dims, append, stack (0) | 2022.06.19 |
---|