Python Numpy 기초 1단계: 필수 코드 마스터하기
1. Numpy 설치, 이제 그만 헤매세요!
Numpy 설치는 터미널이나 커맨드 프롬프트에서 단 한 줄의 명령어로 가능합니다.
pip install numpy
💡 실무에서 겪은 시행착오 Tip 만약 `pip` 명령어가 동작하지 않는다면 파이썬 설치 경로(PATH) 설정을 확인하세요. 프로젝트 간의 충돌을 막기 위해 가상 환경(venv) 사용을 강력히 권장합니다.
설치 확인은 아래 코드를 실행해 보세요.
import numpy as np
print("Numpy 설치 완료!")
2. Numpy 배열(ndarray) 생성의 모든 것
Numpy의 핵심은 ndarray(n-dimensional array)입니다. 파이썬 리스트보다 훨씬 빠르고 메모리 효율적이죠.
(1) 기본 배열 만들기: array() 함수
import numpy as np
# 1차원 배열
arr1 = np.array([1, 2, 3, 4, 5])
print("1차원 배열:", arr1)
# 2차원 배열
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print("2차원 배열:\n", arr2)
(2) 특정 값으로 채우기: zeros(), ones(), full()
# 모든 요소가 0인 배열 (3행 4열)
zeros_arr = np.zeros((3, 4))
print("0으로 채워진 배열:\n", zeros_arr)
# 모든 요소가 1인 배열 (2행 3열)
ones_arr = np.ones((2, 3))
print("1로 채워진 배열:\n", ones_arr)
# 모든 요소가 특정 값(7)으로 채워진 배열
full_arr = np.full((2, 2), 7)
print("7로 채워진 배열:\n", full_arr)
(3) 범위와 무작위 값으로 채우기
# arange: 0부터 9까지 2씩 증가
range_arr = np.arange(0, 10, 2)
print("arange 배열:", range_arr)
# linspace: 0과 1 사이를 5등분
linear_arr = np.linspace(0, 1, 5)
print("linspace 배열:", linear_arr)
# random.rand: 0~1 사이의 무작위 실수 (2x3)
rand_arr = np.random.rand(2, 3)
print("무작위 배열 (rand):\n", rand_arr)
3. 배열의 핵심 정보 확인하기: shape, dtype, size
배열의 구조를 이해하는 것은 오류를 줄이는 첫걸음입니다.
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print("배열의 형태 (shape):", arr.shape) # (행, 열) 튜플 반환
print("배열의 데이터 타입 (dtype):", arr.dtype) # int32, float64 등
print("배열의 총 요소 개수 (size):", arr.size) # 전체 원소 개수
💡 주의할 점
Numpy 배열은 하나의 데이터 타입만 가질 수 있습니다. dtype은 메모리 효율성과 계산 속도에 직접적인 영향을 미치므로 항상 체크하는 습관을 들이세요.
4. Numpy 배열 사칙연산 완전 정복
Numpy의 가장 큰 장점은 벡터화 연산입니다. 루프 없이도 배열 전체에 연산을 적용할 수 있습니다.
(1) 배열 간의 연산 (Element-wise)
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
print("덧셈:", arr1 + arr2)
print("곱셈:", arr1 * arr2)
(2) 논리 및 비교 연산
arr = np.array([1, 5, 3, 8, 2])
print("5보다 큰 요소:", arr > 5)
# [False, False, False, True, False] 반환
5. (심화) 배열 인덱싱 및 슬라이싱 기초
다차원 배열에서 원하는 데이터만 콕 집어내는 방법입니다.
arr = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
print("2행 3열 요소:", arr[1, 2]) # 인덱스는 0부터 시작
print("첫 번째 행 전체:", arr[0, :])
print("부분 배열 (상단 2x2):\n", arr[:2, :2])
💡 저자의 경험
다차원 배열의 [행, 열] 쉼표 구분 인덱싱이 처음엔 어색할 수 있지만, 익숙해지면 파이썬 리스트의 중첩 대괄호보다 훨씬 직관적이라는 것을 알게 되실 거예요!
축하합니다! 1단계를 완료하셨습니다.
이제 여러분은 Numpy를 설치하고, 배열을 생성하며, 기본적인 수치 연산을 수행할 수 있는 능력을 갖추게 되었습니다. 이것은 단순한 코딩을 넘어 Python Numpy 기초 코드 및 최종단계로 나아가기 위한 가장 강력한 무기를 얻은 셈입니다.
다음 Step 2에서는 브로드캐스팅, 배열 모양 변경(Reshape), 통계 함수 등 실제 데이터 분석에서 가장 많이 쓰이는 기법들을 다룰 예정입니다.
📝 깜짝 퀴즈!
아래 배열의 arr.shape와 arr.dtype은 무엇일까요? 댓글로 정답을 공유해 주세요!
import numpy as np
arr = np.array([[10, 20], [30, 40], [50, 60]])
✅ Numpy 마스터 체크리스트
- Numpy 설치 완료
- 배열 생성 (array, zeros, ones)
- shape, dtype, size 속성 이해
- 기본 사칙연산 및 스칼라 연산
- 기초 인덱싱 및 슬라이싱
🎁 댓글 이벤트 참여하기
"나는 Numpy를 _______ (이유) 때문에 배우고 싶다!"
정성스러운 댓글을 남겨주신 분들 중 추첨을 통해 소정의 기프티콘을 보내드립니다!