본문 바로가기

AI

[AI] 개발 로드맵 - NumPy 시작

1. 개념

Python에서 숫자를 여러 개 저장할 때는 보통 List를 사용합니다.

 
numbers = [1, 2, 3, 4, 5]
 

하지만 AI에서는 거의 List를 사용하지 않습니다.

대신 NumPy의 array를 사용합니다.

 
import numpy as np

numbers = np.array([1, 2, 3, 4, 5])
 

그 이유는 NumPy는 벡터(Vector)와 행렬(Matrix) 연산에 최적화되어 있기 때문입니다.

AI 모델은 내부적으로 수백만~수십억 번의 벡터와 행렬 연산을 수행하기 때문에 일반 Python List로는 성능이 부족합니다.

 

 

2. List와 NumPy의 차이

Python List

 
a = [1,2,3]
b = [4,5,6]

print(a+b)
 

결과

[1,2,3,4,5,6]
 

List의 +는 이어 붙이기(Concatenate) 입니다.


NumPy

 
import numpy as np

a = np.array([1,2,3])
b = np.array([4,5,6])

print(a+b)
 

결과

[5 7 9]
 

NumPy의 +는 같은 위치의 값끼리 계산합니다.

 

 

3. 왜 AI는 NumPy를 사용할까?

예를 들어 이미지가 있다고 가정해 봅시다.

[12, 53, 84]
[21, 75, 98]
[65, 44, 18]
 

컴퓨터는 이것을 숫자 행렬(Matrix)로 처리합니다.

또한 문장도

안녕하세요
 

[1523, 4512, 987]
 

[
 0.12,
 0.35,
 0.88,
 ...
]
 

처럼 숫자 벡터(Embedding)로 변환됩니다.

즉 AI는 텍스트도 숫자, 이미지도 숫자, 음성도 숫자로 바꿔 계산합니다.

 

 

 

4. 실습

NumPy 설치

터미널

 
pip install numpy
 

설치 확인

 
import numpy as np

print(np.__version__)
 

배열 생성

 
import numpy as np

numbers = np.array([1,2,3,4,5])

print(numbers)
 

배열 더하기

 
import numpy as np

a = np.array([1,2,3])
b = np.array([4,5,6])

print(a+b)
 

배열 곱하기

 
print(a*2)
 

결과

[2 4 6]

 

 

 

5. 실습 문제

문제1

 
a = np.array([10,20,30])

b = np.array([1,2,3])
 

결과

[11 22 33]
 

직접 만들어 보세요.


문제2

 
a = np.array([10,20,30])
 

결과

[20 40 60]
 

직접 구현해 보세요.


문제3

 
a = np.array([1,2,3])

b = np.array([10,20,30])
 

결과

[10 40 90]
 

(곱셈)


6. AI에서는 어떻게 사용될까?

PyTorch의 Tensor도 NumPy와 거의 비슷하게 동작합니다.

 
import torch

a = torch.tensor([1,2,3])

b = torch.tensor([4,5,6])

print(a+b)
 

결과

tensor([5,7,9])
 

NumPy를 이해하면 PyTorch Tensor도 쉽게 이해할 수 있습니다.


7. 실무 TIP

AI 개발자는 Python List보다 NumPy Array를 훨씬 많이 다룹니다.

학습 데이터 전처리, 이미지 처리, 수치 계산 등 대부분의 작업이 NumPy 기반으로 이루어지며, 이후 PyTorch Tensor로 변환됩니다.


📝 블로그 정리용 한 줄

Python List는 데이터를 저장하는 데 적합하지만, AI는 대량의 수치 계산이 필요하기 때문에 NumPy Array를 사용한다. NumPy는 벡터와 행렬 연산을 빠르게 수행할 수 있으며, 이는 PyTorch Tensor와 LLM의 기반이 되는 핵심 개념이다.