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

안녕하세요!

싸피 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년동안 고생 많으셨어요~!!!

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