지난 시간에 우리는 나만의 수식 자판기인 함수를 만들어 보았습니다. 복잡한 계산식도 필요할 때마다 쏙쏙 꺼내 쓸 수 있게 보관하는 법을 익혔으니, 이제 공학 엔지니어로서 한 단계 더 도약할 준비가 되었습니다. 오늘은 우리가 다루는 데이터의 덩치를 키워볼 차례입니다.
“Numpy는 파이썬이라는 평범한 자동차에 달아주는 강력한 로켓 엔진입니다.”
공학의 세계에서는 숫자 하나가 아니라, 수천 개의 측정값을 한꺼번에 계산해야 할 때가 많습니다. 예를 들어, 기계의 부품이 1초마다 보내오는 온도 데이터를 처리한다고 상상해 보세요. 파이썬의 기본 보관함인 ‘리스트’는 이런 공학 계산에 치명적인 약점을 가지고 있습니다.
우리가 원하는 것은 각 요소가 $$2 \times x_n$$으로 계산되는 것이지, 데이터가 복사되는 것이 아니죠. 이 문제를 해결하기 위해 공학자들은 ‘Numpy(넘파이)’라는 도구를 사용합니다.
import numpy as np # 공학 계산의 필수 도구인 Numpy를 불러옵니다.
# 1. 일반 리스트의 함정
basic_list = [1, 2, 3]
print(basic_list * 2) # 출력: [1, 2, 3, 1, 2, 3] -> 우리가 원하던 결과가 아니에요!
# 2. Numpy 배열의 마법
np_array = np.array([1, 2, 3]) # 리스트를 Numpy 배열로 변환합니다.
print(np_array * 2) # 출력: [2, 4, 6] -> 드디어 수학적 연산이 적용되었습니다!
Numpy 배열은 우리가 작성한 수식 $$y = 2x$$를 배열의 모든 요소에 아주 빠르고 정확하게 적용합니다. 이것이 가능한 이유는 ‘벡터 연산’ 덕분입니다.
– 벡터 연산(Vectorization): 데이터를 하나씩 꺼내어 계산하는 지루한 반복문(For문) 대신, 수만 개의 데이터를 단 한 줄의 코드로 동시에 처리해 버리는 공학계의 초고속 연산 기법입니다.
이제 우리는 공학 계산을 위한 강력한 도구 세트를 갖추었습니다. 1단계에서 배운 함수와 오늘 배운 Numpy 배열을 조합하면, 여러분은 이미 세상의 수많은 물리 현상을 수치로 완벽하게 다룰 준비가 된 셈입니다. 1단계 기초 훈련을 모두 마친 여러분, 정말 고생 많으셨습니다!
다음 시간에는 드디어 2단계로 진입합니다. 우리가 계산한 숫자들을 단순히 텍스트로만 보는 게 아니라, ‘Matplotlib’이라는 디자이너를 고용해 눈에 보이는 멋진 2D 그래프로 그려볼 예정입니다. 공학의 언어가 그림으로 바뀌는 마법 같은 순간, 기대해 주세요!