본문 바로가기
프로젝트/PYTHON

파이썬 핵심 모듈 5가지: 과학 · 공학 계산의 도구들

by 도서관경비원 2025. 3. 22.
반응형

python의 IDE인 PyCharm

모듈이란 무엇인가

파이썬의 강력함은 언어 자체만큼이나 그 위에 쌓인 모듈(Module) 생태계에서 나온다. 모듈은 특정 목적을 위해 미리 만들어진 독립적인 프로그램 묶음으로, 라이브러리(Library)라는 용어와 혼용되기도 한다. 복잡한 수학 계산, 데이터 시각화, 3D 애니메이션 같은 기능을 처음부터 직접 구현할 필요 없이, 검증된 모듈을 불러와 단 몇 줄의 코드로 구현할 수 있다.

 

과학·공학 분야에서 특히 널리 쓰이는 핵심 모듈 다섯 가지를 살펴보자.


1) NumPy: 수치 계산의 기반

NumPy(Numerical Python)는 파이썬 과학 계산의 토대가 되는 모듈이다. 벡터와 행렬 연산, 복소수를 포함한 선형 방정식 풀기, 통계 계산 등 광범위한 수치 연산을 지원한다.

 

아래 예제는 두 벡터 A와 B의 합, 원소별 곱, 외적, 내적을 계산하는 코드다.

import numpy as np
A = np.array([1, 2, 3])
B = np.array([4, 5, 6])
print("Vector A:", A)
print("Vector B:", B)
print("Total A+B:", A+B)
print("Product A*B:", A*B)
print("Cross product:", np.cross(A, B))
print("Scalar product:", np.dot(A, B))
Vector A: [1 2 3]
Vector B: [4 5 6]
Total A+B: [5 7 9]
Product A*B: [ 4 10 18]
Cross product: [-3  6 -3]
Scalar product: 32

 

수식을 이해하지 못해도 코드가 얼마나 간결한지는 충분히 느낄 수 있다. 복잡한 벡터 연산이 단 한 줄로 처리된다.


2) Matplotlib: 데이터 시각화

Matplotlib는 수학 함수, 히스토그램, 산점도 등 다양한 그래프를 그릴 수 있는 시각화 모듈이다. 물리적 과정의 시뮬레이션과 애니메이션 제작도 가능하며, 그래픽 디자인 옵션이 매우 다양하고 세밀하게 조정할 수 있다.

 

아래 예제는 3차 다항식 함수의 그래프를 그리는 코드다.

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(-2, 6, 0.01)
y = x**3 - 7*x**2 + 7*x + 15
plt.plot(x, y)
plt.show()

 

NumPy로 x값의 범위를 정의하고 수식을 계산한 뒤, Matplotlib의 plot 함수 하나로 그래프가 완성된다. 데이터를 눈으로 확인하고 싶을 때 가장 먼저 손이 가는 모듈이다.


3) SymPy: 기호 수학 계산

SymPy(Symbolic Python)는 수치가 아닌 기호(symbol)로 수학 계산을 수행하는 모듈이다. 미분, 적분, 미분방정식 풀기, 수식 단순화 등을 수치 근사 없이 정확한 수식 형태로 처리할 수 있다는 것이 가장 큰 특징이다.

 

아래 예제는 3차 다항식의 1·2·3차 도함수와 부정적분을 구하는 코드다.

from sympy import *
x = symbols("x")
y = x**3 - 7*x**2 + 7*x + 15
y_1 = diff(y, x, 1)
y_2 = diff(y, x, 2)
y_3 = diff(y, x, 3)
Y  = integrate(y, x)
print("1. Derivative:", y_1)
print("2. Derivative:", y_2)
print("3. Derivative:", y_3)
print("   Integral  :", Y)
1. Derivative: 3*x**2 - 14*x + 7
2. Derivative: 2*(3*x - 7)
3. Derivative: 6
   Integral  : x**4/4 - 7*x**3/3 + 7*x**2/2 + 15*x

 

손으로 계산하면 실수하기 쉬운 미적분을 정확한 수식으로 즉시 얻을 수 있다. 수학 문제 검증이나 공학 수식 유도에 특히 유용하다.


4) SciPy: 과학 계산의 종합 도구

SciPy(Scientific Python)는 수치 미적분, 미분방정식, 신호처리, 최적화, 통계 등을 아우르는 종합 과학 계산 모듈이다. NumPy를 기반으로 구축되어 있으며, 보다 전문적이고 복잡한 과학·공학 문제를 다룬다.

 

아래 예제는 함수 x²를 0부터 5까지 수치 적분하는 코드다.

import scipy.integrate as integral

def f(x):
    return x**2

A = integral.quad(f, 0, 5)
print("Area A=", A[0])
Area A= 41.66666666666666

 

quad 함수 하나로 정적분 값을 즉시 계산한다. SymPy가 수식을 기호로 다룬다면, SciPy는 실제 수치 데이터를 빠르고 정밀하게 처리하는 데 강점을 가진다.


5) VPython: 3D 시각화와 애니메이션

VPython은 3차원 공간에서 물체를 표현하고 움직임을 애니메이션으로 구현할 수 있는 모듈이다. 물리 시뮬레이션, 역학 계산 결과의 시각화 등에 특히 유용하며, 교육 현장에서도 널리 활용된다.

 

아래 예제는 바닥에서 공이 튀어 오르는 애니메이션을 구현하는 코드다.

from vpython import *
r = 1.
h = 5.
scene.background = color.white
scene.center = vector(0, h, 0)
box(pos=vector(0,0,0), size=vector(2*h, r/2, h), color=color.green)
ball = sphere(radius=r, color=color.yellow)
ball.pos = vector(0, 2*h, 0)
ball.v = vector(0, 0, 0)
g = 9.81
dt = 0.01
while True:
    rate(100)
    ball.pos = ball.pos + ball.v * dt
    if ball.pos.y < r:
        ball.v.y = -ball.v.y
    else:
        ball.v.y = ball.v.y - g * dt

 

중력 가속도를 적용해 공이 떨어지고, 바닥에 닿으면 속도 방향을 반전시켜 튀어 오르는 과정을 실시간 3D 화면으로 구현한다. 물리 공식이 코드로 그대로 옮겨진 것을 확인할 수 있다.

VPython


다섯 모듈 한눈에 비교

각 모듈의 역할을 한 문장으로 정리하면 이렇다. NumPy는 수치 계산의 토대, Matplotlib은 결과의 시각화, SymPy는 수식의 정확한 기호 처리, SciPy는 복잡한 과학 계산의 종합 도구, VPython은 3D 공간에서의 동적 시각화다.

 

이 다섯 가지 모듈을 상황에 맞게 조합하면, 간단한 방정식 풀기부터 물리 시뮬레이션까지 대부분의 과학·공학 문제를 파이썬 하나로 해결할 수 있다. 모두 무료이며, 방대한 공식 문서와 커뮤니티의 도움을 받을 수 있다는 점도 큰 장점이다. <끝>

반응형