안녕하세요!

싸피 10기는 벌써 마지막 프로젝트를 끝내고,
이제 수료가 코앞입니다!!!
처음엔 1년이 길다고 생각했는데,
지나고 보니 금방이네요. ㅎㅎ..
이번 마지막 그것이 알고싶다의 주제는 Numpy입니다!
파이썬이나 데이터사이언스, 인공지능 등등..
한번쯤은 들어 보셨을텐데요,
왜 쓰는지, 어디에 쓰는지! 한 번 알아볼까요?
📚 Numpy란?
행렬과 벡터 연산을 효율적으로 수행할 수 있는 파이썬 라이브러리입니다.
- 배열 및 벡터를 표현하는 구조인 ndarray를 사용하여 빠르고, 메모리를 효율적으로 사용할 수 있습니다.
- 반복문(for문)을 작성할 필요없이 전체 데이터 배열에 대해 빠른 연산을 제공하는 함수를 제공합니다.
- C, C++, fortran 등의 언어와 통합하여 사용할 수 있습니다.
- Dynamic Typing이 안되므로 빠릅니다.
더보기
Dynamic Typing
= 한 array안에 각자 다른 타입의 요소를 포함시키는 것을 의미합니다.
예를 들어, 파이썬에서는
arr = ['1', 2, '3', 4]
이런식으로, str형식과 int형식을 같이 한 array에 담을 수 있지만,
Numpy에서는
arr = np.array(['1', 2, '3', 4], float)
type(arr[2]) # numpy.float64
이런식으로, 지정해준 float로 담깁니다.
🔎 Numpy의 주요 기능
Numpy는 다양한 기능을 제공하는 라이브러리이지만 몇가지만 코드로 살펴볼까요?
▶️ 배열 정보 확인
- shape 함수: 배열의 차원 구조를 나타냅니다.
arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) arr.shape # (2, 4)
- dtype 함수: 배열의 테이터 타입을 반환합니다.
arr.dtype # int64
▶️ 배열의 특정 값 선택
#1 행렬 인덱싱
print(arr[0, 2:4])
## [3 4]
#2 조건부 추출
print(arr[arr >= 5])
## [5 6 7 8]
#3 최솟값 추출
print(arr.argmin()) #print(np.argmin(arr))
## 0
#4 최댓값 추출
print(arr.argmax()) #print(np.argmax(arr))
## 7
▶️ 전치 행렬 반환
- transpose 함수: 행과 열을 바꾸어 전치 행렬을 반환합니다.
# 전치행렬 변환
print(arr.transpose())
## [[1 5]
## [2 6]
## [3 7]
## [4 8]]
▶️ 저장 및 불러오기
- save, load 함수
# 배열 저장
np.save("arr.npy")
# 배열 불러오기
np.load("arr.npy")
## array([[1, 2, 3, 4],
## [5, 6, 7, 8]])
그럼, 이런 Numpy를 어디서 주로 사용할까요?
🗄 Numpy를 사용하는 작업
- 데이터 분석 및 처리
- 데이터 로드, 저장, 조작
- 통계 계산(평균, 표준편차, 상관관계 등)
- 데이터 시각화를 위한 기반 제공
- 머신러닝 및 딥러닝
- 데이터 전처리 및 특성 추출
- 모델 학습을 위한 입력 데이터 생성
- 모델 평가 지표 계산
- 신호 처리 및 이미지 처리
- 푸리에 변환, 필터링 등의 신호처리
- 이미지 로드, 변환, 필터링 등의 이미지 처리
- 과학 계산 및 수치해석
- 선형대수 연산(행렬 곱셈, 역행렬 등)
- 미분, 적분 등의 수치해석
- 금융 데이터 분석
- 주가 데이터 로드 및 분석
- 포트폴리오 최적화 등의 금융 계산
- 생물 정보학 등
- 유전체 데이터 처리 및 분석
- 단백질 구조 예측 등의 생물학적 계산
오늘은 머신러닝, 데이터처리, 수치해석 등에 꼭 필요한
python의 라이브러리, Numpy에 대해서 간단하게 알아봤습니다.
그것이 알고싶다 시리즈는 이번편을 마지막으로 끝입니다..!
10기 동기분들 싸피 1년동안 고생 많으셨어요~!!!
늘 행복하고, 취뽀합시다!!!!
'교육 > SSAFYcial' 카테고리의 다른 글
[FE 성능측정] LightHouse, 그것이 알고싶다 (0) | 2024.05.02 |
---|---|
[3D] Three.js, 그것이 알고싶다 (1) | 2024.04.01 |
[SSAFY] 에자일 방법론, 그것이 알고싶다 (0) | 2024.02.27 |
[알고리즘] 플로이드 워셜, 그것이 알고싶다 (0) | 2024.01.31 |
[알고리즘] 벨만포드, 그것이 알고싶다 (2) | 2024.01.30 |