[Python] NumPy + Pandas + 클래스

RoRA·2026년 3월 16일

[Python] Algorithms

목록 보기
22/22

🙌Python 데이터 분석 기초 정리

오늘 공부하면서 정리한 내용을 한 번에 정리해보려고 한다.
주로 다룬 내용은 다음과 같다.

  • NumPy 기본 개념
  • NumPy 배열과 행렬
  • Pandas DataFrame 생성 방법
  • Python 클래스 활용
  • 코딩하면서 자주 발생하는 오류들

1️⃣ NumPy란?

NumPy (Numerical Python)
대규모 숫자 데이터를 빠르게 계산하기 위한 Python 라이브러리이다.

데이터 분석, 머신러닝, 과학 계산에서 거의 필수적으로 사용된다.

핵심 자료구조는

ndarray (N-dimensional array)

N차원 배열이다.

예시

import numpy as np

arr = np.array([1,2,3])
print(type(arr))

결과

<class 'numpy.ndarray'>

2️⃣ Python 리스트 vs NumPy 배열

Python 리스트도 숫자 데이터를 다룰 수 있지만 한계가 있다.

Python 리스트

numbers = [1,2,3,4,5]

result = []
for num in numbers:
    result.append(num * 2)

문제점

  • 반복문 필요
  • 속도가 느림

NumPy

numbers = np.array([1,2,3,4,5])
result = numbers * 2

결과

array([2,4,6,8,10])

NumPy는 벡터화 연산을 지원하기 때문에
반복문 없이 빠르게 계산할 수 있다.


3️⃣ NumPy 행렬 만들기

NumPy에서는 행렬을 쉽게 만들 수 있다.

기본 행렬

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

0으로 채운 행렬

np.zeros((3,3))

1로 채운 행렬

np.ones((3,3))

단위행렬

단위행렬은 대각선만 1인 행렬이다.

np.identity(3)

결과

[[1 0 0]
 [0 1 0]
 [0 0 1]]

4️⃣ NumPy 주요 연산

reshape

배열 형태 변경

arr = np.arange(9)
arr.reshape(3,3)

linspace

일정한 간격의 배열 생성

np.linspace(0, 2*np.pi, 100)

삼각함수

np.sin(theta)

예시

theta = np.linspace(0, 2*np.pi, 100)
sin_theta = np.sin(theta)

그래프

plt.plot(theta, sin_theta)

5️⃣ Pandas DataFrame 생성 방법

DataFrame은 여러 방식으로 만들 수 있다.

Dict

df = pd.DataFrame({
    "Name": ["Alice","Bob"],
    "Age": [25,30]
})

List[Dict]

df = pd.DataFrame([
    {"Name":"Alice","Age":25},
    {"Name":"Bob","Age":30}
])

List[List]

data = [
    ["Alice",25,85.5],
    ["Bob",30,90.3]
]

columns = ["Name","Age","Score"]

df = pd.DataFrame(data, columns=columns)

NumPy 배열

nums = np.array([
    [25,85.5],
    [30,90.3]
])

df = pd.DataFrame({
    "Age": nums[:,0],
    "Score": nums[:,1]
})

주의할 점

NumPy 배열은 dtype이 자동으로 float로 변할 수 있다.

그래서

astype(int)

로 타입을 맞춰주는 경우도 있다.


6️⃣ Python 클래스 활용

학생 점수를 관리하는 예제를 구현했다.

클래스 정의

class Student:
    def __init__(self, name, korean, english, math):
        self.name = name
        self.korean = korean
        self.english = english
        self.math = math

총점 계산

def get_total(self):
    return self.korean + self.english + self.math

평균 계산

def get_average(self):
    return self.get_total() / 3

합격 여부 판단

def check_pass(student):
    if student.get_average() >= 75:
        return "합격"
    else:
        return "불합격"

7️⃣ 자주 발생하는 오류

AssertionError

assert 조건

조건이 False일 경우 발생한다.

assert x == 5

x가 5가 아니면 오류 발생.


append() 반환값

l.append(5)

append는 값을 반환하지 않는다.

반환값

None

그래서

l.append(5) == something

같이 쓰면 오류가 난다.


8️⃣ 오늘 배운 핵심

오늘 공부하면서 느낀 핵심은 다음이다.

  • NumPy는 빠른 계산을 위한 라이브러리
  • Pandas는 데이터 처리
  • NumPy 배열은 벡터 연산 가능
  • DataFrame은 여러 방식으로 생성 가능
  • 클래스는 데이터를 구조적으로 관리할 때 유용하다

데이터 분석 공부의 기본 흐름은 보통 다음과 같다.

NumPy → Pandas → Visualization → Machine Learning

마무리

오늘은 데이터 분석의 기초가 되는

  • NumPy
  • Pandas
  • Python 클래스

를 함께 정리해봤다.

기본 개념들을 이해해두면 이후에 머신러닝이나 데이터 분석을 할 때 훨씬 수월해질 것 같다.

0개의 댓글