📚 NumPy 배열이 뭔가요?
NumPy(넘파이)는 "Numerical Python"의 줄임말로, 파이썬에서 숫자를 다루는 가장 기본적이고 강력한 도구입니다.
일반적인 파이썬 리스트와 달리 NumPy 배열은 마치 엑셀의 표처럼 숫자들을 체계적으로 정리해서 보관하는 특별한 저장 공간이라고 생각하면 됩니다.

🔍 왜 NumPy 배열을 사용해야 할까요?
1. 빠른 속도: 일반 리스트보다 훨씬 빠르게 계산합니다
2. 적은 메모리 사용: 같은 데이터를 더 효율적으로 저장합니다
3. 간단한 연산: 복잡한 계산을 한 줄로 처리할 수 있습니다
4. 다양한 활용: 데이터 분석, 이미지 처리, 머신러닝 등 다양한 분야에서 활용됩니다
🏗️ NumPy 배열 만들기
기본 설치 및 사용법
```python
import numpy as np 넘파이를 np라는 이름으로 불러오기
```
1차원 배열 - 일렬로 늘어선 숫자들
```python
1차원 배열 생성
arr1d = np.array([1, 2, 3, 4, 5])
print(arr1d) [1 2 3 4 5]
```
2차원 배열 - 표 형태의 숫자들
```python
2차원 배열 생성 (2행 3열)
arr2d = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2d)
[[1 2 3]
[4 5 6]]
```
편리한 배열 생성 함수들
```python
0으로 채워진 배열
zeros_arr = np.zeros(5) [0. 0. 0. 0. 0.]
1로 채워진 배열
ones_arr = np.ones((2, 3)) 2행 3열을 1로 채움
연속된 숫자 배열
range_arr = np.arange(10) [0 1 2 3 4 5 6 7 8 9]
특정 간격의 숫자 배열
step_arr = np.arange(5, 15, 2) [5 7 9 11 13]
```
🎯 실생활 예제: 성적 관리 시스템
학급의 성적 관리를 NumPy로 해보겠습니다:
```python
학생 3명의 국어, 영어, 수학 성적
scores = np.array([
[85, 90, 78], 학생 1
[92, 88, 94], 학생 2
[76, 84, 81] 학생 3
])
과목별 평균 계산
subject_avg = np.mean(scores, axis=0)
print("과목별 평균:", subject_avg) [84.3 87.3 84.3]
학생별 평균 계산
student_avg = np.mean(scores, axis=1)
print("학생별 평균:", student_avg) [84.3 91.3 80.3]
```
📈 실생활 예제: 온라인 쇼핑몰 매출 분석
쇼핑몰 운영자가 일주일간 상품별 판매량을 분석한다고 해보겠습니다:
```python
일주일간 4개 상품의 일일 판매량
sales_data = np.array([
[20, 15, 30, 25], 월요일
[25, 18, 35, 28], 화요일
[30, 22, 40, 32], 수요일
[28, 20, 38, 30], 목요일
[35, 25, 45, 38], 금요일
[40, 30, 50, 42], 토요일
[45, 35, 55, 48] 일요일
])
상품별 총 판매량 계산
product_total = np.sum(sales_data, axis=0)
print("상품별 총 판매량:", product_total) [223 165 293 243]
요일별 총 판매량 계산
daily_total = np.sum(sales_data, axis=1)
print("요일별 총 판매량:", daily_total) [90 106 124 116 143 162 183]
```
🔧 NumPy 배열의 핵심 특징
1. 배열의 속성 확인하기
```python
arr = np.array([[1, 2, 3], [4, 5, 6]])
print("배열의 형태:", arr.shape) (2, 3) - 2행 3열
print("배열의 차원:", arr.ndim) 2 - 2차원
print("배열의 크기:", arr.size) 6 - 총 6개 원소
```
2. 배열 연산의 마법
NumPy의 가장 큰 장점 중 하나는 벡터화 연산입니다. 복잡한 반복문 없이 한 번에 모든 원소에 연산을 적용할 수 있습니다:
```python
arr_a = np.array([1, 2, 3, 4, 5])
arr_b = np.array([10, 20, 30, 40, 50])
배열끼리 계산
result = arr_a + arr_b [11 22 33 44 55]
배열에 숫자 계산
doubled = arr_a 2 [2 4 6 8 10]
```
3. 유용한 통계 함수들
```python
data = np.array([10, 20, 30, 40, 50])
print("평균:", np.mean(data)) 30.0
print("최대값:", np.max(data)) 50
print("최소값:", np.min(data)) 10
print("합계:", np.sum(data)) 150
print("표준편차:", np.std(data)) 14.14...
```
🌟 NumPy 배열의 활용 분야
1. 이미지 처리
이미지는 실제로 픽셀 값들의 배열로 구성됩니다. NumPy를 사용하면 이미지를 배열로 변환하여 밝기 조절, 필터 적용 등 다양한 처리를 할 수 있습니다.
2. 데이터 분석
엑셀 같은 표 형태의 데이터를 NumPy 배열로 변환하면 통계 분석, 그래프 생성 등을 쉽게 할 수 있습니다.
3. 머신러닝
인공지능 모델은 대부분 NumPy 배열 형태의 데이터를 사용합니다. 학습용 데이터를 준비하고 모델을 훈련시키는 과정에서 NumPy가 핵심 역할을 합니다.
💡 NumPy 배열 사용 팁
1. 메모리 효율성
NumPy 배열은 같은 데이터 타입의 원소만 저장할 수 있지만, 이 때문에 메모리를 효율적으로 사용합니다.
2. 브로드캐스팅
크기가 다른 배열끼리도 특정 조건에서 연산이 가능합니다. 예를 들어, 2x3 배열에 크기 3인 1차원 배열을 더할 수 있습니다.
3. 인덱싱과 슬라이싱
파이썬 리스트와 비슷하게 특정 위치의 원소에 접근하거나 일부분을 추출할 수 있습니다.
🎉 결론
NumPy 배열은 파이썬에서 숫자 데이터를 다루는 가장 기본적이면서도 강력한 도구입니다. 처음에는 복잡해 보일 수 있지만, 한 번 익숙해지면 데이터 분석, 과학 계산, 머신러닝 등 다양한 분야에서 없어서는 안 될 도구가 됩니다.
핵심 포인트:
- 빠른 속도와 효율적인 메모리 사용
- 간단한 문법으로 복잡한 연산 수행
- 다양한 분야에서 활용 가능
- 파이썬 데이터 과학 생태계의 기초
NumPy 배열을 마스터하면 데이터 과학의 세계로 한 걸음 더 나아갈 수 있습니다! 🚀
'IT' 카테고리의 다른 글
컴퓨터 보안 용어 완전 정복 가이드 (0) | 2025.07.01 |
---|---|
🔒 인터넷 보안, 어렵지 않아요! SSH, SSL, TLS, HTTPS 쉽게 이해하기 (0) | 2025.07.01 |
📱 컴퓨터 초보자도 10분만에 이해하는 네트워크 용어 완전정복 (0) | 2025.07.01 |
퍼플렉시티 랩(Perplexity Labs) 완전 정복 가이드 - AI가 이제 직접 만들어준다고?! 🚀 (8) | 2025.06.01 |
누구나 이해하는 컴퓨터 데이터와 명령어 (2) | 2025.05.31 |