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의 기반이 되는 핵심 개념이다.
'AI' 카테고리의 다른 글
| [AI] AI는 어떻게 '비슷한 의미'를 이해할까? - Cosine Similarity(코사인 유사도) 완벽 이해 (0) | 2026.07.03 |
|---|---|
| [AI]NumPy와 PyTorch의 차이 - AI 개발자는 왜 둘 다 배울까? (0) | 2026.07.03 |
| [AI] NumPy reshape() 완벽 이해 - AI에서 왜 중요한가? (0) | 2026.07.03 |
| [AI] NumPy ndarray와 Shape 완벽 이해하기 (Batch, Embedding) (0) | 2026.07.03 |