Meme's IT

[Python] Numpy, 그것이 알고싶다 본문

SSAFY/그것이 알고싶다(기획)

[Python] Numpy, 그것이 알고싶다

Memez 2024. 5. 31. 20:47

안녕하세요!

싸피 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를 사용하는 작업

  1. 데이터 분석 및 처리
    • 데이터 로드, 저장, 조작
    • 통계 계산(평균, 표준편차, 상관관계 등)
    • 데이터 시각화를 위한 기반 제공
  2. 머신러닝 및 딥러닝
    • 데이터 전처리 및 특성 추출
    • 모델 학습을 위한 입력 데이터 생성
    • 모델 평가 지표 계산
  3. 신호 처리 및 이미지 처리
    • 푸리에 변환, 필터링 등의 신호처리
    • 이미지 로드, 변환, 필터링 등의 이미지 처리
  4. 과학 계산 및 수치해석
    • 선형대수 연산(행렬 곱셈, 역행렬 등)
    • 미분, 적분 등의 수치해석
  5. 금융 데이터 분석
    • 주가 데이터 로드 및 분석
    • 포트폴리오 최적화 등의 금융 계산
  6. 생물 정보학 등
    • 유전체 데이터 처리 및 분석
    • 단백질 구조 예측 등의 생물학적 계산

 


오늘은 머신러닝, 데이터처리, 수치해석 등에 꼭 필요한

python의 라이브러리, Numpy에 대해서 간단하게 알아봤습니다.

 

그것이 알고싶다 시리즈는 이번편을 마지막으로 끝입니다..!

10기 동기분들 싸피 1년동안 고생 많으셨어요~!!!

늘 행복하고, 취뽀합시다!!!!