교육/Python

Python Numpy 기초 1단계: 데이터 분석의 초석 다지기

essay8307 2026. 2. 2. 11:24
파이썬 NumPy 기초과정 1단계 | 데이터 분석의 시작
Step 1 Guide

Python Numpy 기초 1단계: 데이터 분석의 초석 다지기

파이썬 리스트의 한계를 느끼고 계신가요? Python Numpy 기초 코드 및 최종단계까지 가기 위한 가장 확실한 첫 걸음, 지금 시작합니다.

데이터 분석과 머신러닝의 세계에 발을 들이셨나요? 파이썬 리스트만으로는 대규모 연산을 처리하기에 부족함과 느림을 느끼셨을 겁니다. 'Numpy'라는 이름이 거창하게 느껴져 시작을 망설였다면 잘 오셨습니다. 이 가이드는 완전 초보자를 위한 Python Numpy 기초 1단계 필수 코스를 다룹니다.

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.shapearr.dtype은 무엇일까요? 댓글로 정답을 공유해 주세요!

import numpy as np
arr = np.array([[10, 20], [30, 40], [50, 60]])

✅ Numpy 마스터 체크리스트

  • Numpy 설치 완료
  • 배열 생성 (array, zeros, ones)
  • shape, dtype, size 속성 이해
  • 기본 사칙연산 및 스칼라 연산
  • 기초 인덱싱 및 슬라이싱

🎁 댓글 이벤트 참여하기

"나는 Numpy를 _______ (이유) 때문에 배우고 싶다!"

정성스러운 댓글을 남겨주신 분들 중 추첨을 통해 소정의 기프티콘을 보내드립니다!