[파이썬 공학 시뮬레이션 1단계] 5화. 넘파이(Numpy)의 등장, 리스트와 배열의 역학적 차이

지난 시간에 우리는 나만의 수식 자판기인 함수를 만들어 보았습니다. 복잡한 계산식도 필요할 때마다 쏙쏙 꺼내 쓸 수 있게 보관하는 법을 익혔으니, 이제 공학 엔지니어로서 한 단계 더 도약할 준비가 되었습니다. 오늘은 우리가 다루는 데이터의 덩치를 키워볼 차례입니다.

“Numpy는 파이썬이라는 평범한 자동차에 달아주는 강력한 로켓 엔진입니다.”

공학의 세계에서는 숫자 하나가 아니라, 수천 개의 측정값을 한꺼번에 계산해야 할 때가 많습니다. 예를 들어, 기계의 부품이 1초마다 보내오는 온도 데이터를 처리한다고 상상해 보세요. 파이썬의 기본 보관함인 ‘리스트’는 이런 공학 계산에 치명적인 약점을 가지고 있습니다.

🚨 주의: 파이썬의 리스트는 단순히 물건을 담는 바구니일 뿐입니다. 리스트에 담긴 숫자에 2를 곱한다고 해서, 수학적으로 각 요소가 2배가 되는 마법은 일어나지 않습니다. 오히려 리스트의 항목이 반복되어 나열되는 ‘기차 이어붙이기’ 현상이 벌어지니 각별히 조심하세요!

우리가 원하는 것은 각 요소가 $$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문) 대신, 수만 개의 데이터를 단 한 줄의 코드로 동시에 처리해 버리는 공학계의 초고속 연산 기법입니다.
💡 선배의 실무 Note: 실제 엔지니어링 프로젝트에서는 데이터를 다룰 때 무조건 Numpy 배열을 기본으로 사용합니다. 데이터가 많아질수록 기본 리스트와 Numpy의 속도 차이는 하늘과 땅 차이가 나기 때문입니다.

이제 우리는 공학 계산을 위한 강력한 도구 세트를 갖추었습니다. 1단계에서 배운 함수와 오늘 배운 Numpy 배열을 조합하면, 여러분은 이미 세상의 수많은 물리 현상을 수치로 완벽하게 다룰 준비가 된 셈입니다. 1단계 기초 훈련을 모두 마친 여러분, 정말 고생 많으셨습니다!

다음 시간에는 드디어 2단계로 진입합니다. 우리가 계산한 숫자들을 단순히 텍스트로만 보는 게 아니라, ‘Matplotlib’이라는 디자이너를 고용해 눈에 보이는 멋진 2D 그래프로 그려볼 예정입니다. 공학의 언어가 그림으로 바뀌는 마법 같은 순간, 기대해 주세요!

댓글 남기기