NumPy 라이브러리란?

NumPy(넘파이, Numerical Python)는 파이썬에서 과학 계산 및 데이터 분석을 위한 대표적인 라이브러리입니다. 다차원 배열 객체인 ndarray를 제공하며, 수학 연산 및 행렬 연산을 효율적으로 수행할 수 있도록 최적화되어 있습니다.

🔹 NumPy 설치 방법

pip install numpy

🔹 NumPy 기본 사용법

1. NumPy 라이브러리 불러오기

import numpy as np

2. NumPy 배열 생성

arr = np.array([1, 2, 3, 4, 5])
print(arr) # [1 2 3 4 5]
print(type(arr)) # <class 'numpy.ndarray'>

3. 다차원 배열 생성

arr_2d = np.array([[1, 2, 3], [4, 5, 6]])
print(arr_2d)

출력:

[[1 2 3]
[4 5 6]]

4. 기본 배열 생성 함수

print(np.zeros((3, 3)))  # 3x3 영행렬
print(np.ones((2, 4))) # 2x4 행렬 (모든 값이 1)
print(np.full((2, 2), 7)) # 모든 값이 7인 2x2 행렬
print(np.eye(3)) # 3x3 단위 행렬
print(np.arange(0, 10, 2)) # [0 2 4 6 8]
print(np.linspace(0, 1, 5)) # 0과 1 사이를 5등분한 배열

🔹 NumPy 배열 연산

1. 기본 연산

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

print(a + b) # [5 7 9]
print(a - b) # [-3 -3 -3]
print(a * b) # [4 10 18]
print(a / b) # [0.25 0.4 0.5]

2. 브로드캐스팅(Broadcasting)

A = np.array([[1, 2], [3, 4]])
B = np.array([10, 20])

print(A + B)
# [[11 22]
# [13 24]]
  • 브로드캐스팅이란 크기가 다른 배열을 자동으로 맞춰서 연산하는 기능입니다.

3. 행렬 연산

A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])

print(A @ B) # 행렬 곱셈
print(np.dot(A, B)) # 같은 행렬 곱셈 결과

4. 유용한 수학 함수

arr = np.array([1, 2, 3, 4, 5])

print(np.sum(arr)) # 합계: 15
print(np.mean(arr)) # 평균: 3.0
print(np.max(arr)) # 최댓값: 5
print(np.min(arr)) # 최솟값: 1
print(np.std(arr)) # 표준편차
print(np.sqrt(arr)) # 제곱근

🔹 NumPy 배열 인덱싱 & 슬라이싱

arr = np.array([10, 20, 30, 40, 50])

print(arr[1]) # 20
print(arr[1:4]) # [20 30 40]
print(arr[:3]) # [10 20 30]
print(arr[::-1]) # [50 40 30 20 10] (거꾸로 출력)

2차원 배열에서 특정 요소 선택

arr_2d = np.array([[10, 20, 30], [40, 50, 60]])

print(arr_2d[0, 1]) # 20 (0번째 행, 1번째 열)
print(arr_2d[:, 1]) # [20 50] (모든 행의 1번째 열)
print(arr_2d[1, :]) # [40 50 60] (1번째 행의 모든 열)

🔹 NumPy 응용 예제

1. 난수 생성

np.random.seed(42)  # 시드 고정 (결과 일관성 유지)
print(np.random.rand(3, 3)) # 0~1 사이의 난수 행렬
print(np.random.randint(1, 10, (3, 3))) # 1~10 사이의 정수 난수 행렬

2. 배열 변형 (Reshape)

arr = np.arange(1, 10)
print(arr.reshape(3, 3)) # 3x3 행렬로 변경

3. 배열 정렬

arr = np.array([3, 1, 4, 1, 5, 9])
print(np.sort(arr)) # 오름차순 정렬: [1 1 3 4 5 9]

🔹 NumPy 활용 예제: 선형대수

A = np.array([[2, 3], [1, 4]])
b = np.array([5, 6])

x = np.linalg.solve(A, b) # Ax = b의 해 구하기
print(x)

🔹 NumPy와 Pandas 비교

기능NumPy (ndarray)Pandas (DataFrame)
데이터 구조다차원 배열 (ndarray)테이블 형태 (DataFrame)
속도빠름 (벡터 연산)다소 느림 (추가 기능)
사용 목적수학 계산, 머신러닝데이터 분석, 시각화
인덱싱숫자 인덱싱 사용라벨 및 숫자 인덱싱 지원

✅ NumPy는 데이터 분석과 머신러닝에서 필수적인 라이브러리입니다. ndarray를 활용한 고속 연산을 익히면 효율적인 데이터 처리가 가능합니다. 🚀

zerg96

Recent Posts

요양원 선택 전 반드시 확인해야 할 것들, 부모님 맡기기 전에 보세요

요양원 선택 전 반드시 확인해야 할 체크리스트를 공개합니다. 공식 평가 자료 조회법, 방문 시 확인…

3일 ago

공공기관 채용 비리, 내부에서 터져나온 충격 증언

공공기관 채용 비리의 실태와 피해 지원자의 대응법을 정리했습니다. 채용 비리 신고 방법, 공익신고자 보호제도, 취준생…

3일 ago

주식 손실 났을 때 세금 줄이는 방법, 아는 사람만 씁니다

주식 손실을 세금 절약에 활용하는 합법적 방법을 공개합니다. 해외주식 손익통산, ISA 계좌 활용, 연금계좌 절세까지…

3일 ago

음식 배달 늦으면 소비자가 취소할 수 있다, 몰랐던 권리

배달이 예상 시간보다 크게 늦으면 취소·환불을 요청할 수 있습니다. 배달앱별 지연 취소 방법과 잘못 배달됐을…

3일 ago

휴대폰 요금제 바꾸면 연 수십만원 절약, 지금 내 요금제 확인하세요

통신비 절약의 핵심은 요금제 최적화입니다. 내 데이터 사용량 확인법, 알뜰폰 전환 비교, 위약금 없이 요금제…

3일 ago

퇴직금 못 받았다면, 지금 당장 이렇게 하세요

퇴직 후 퇴직금을 받지 못했다면 즉시 노동부에 신고하세요. 지급 기한, 자격 요건, 신고 방법, 소액체당금…

3일 ago