OPEN HYPER STEP
← 목록으로 (math)
MATH · 36 / 45
math
CHAPTER 36 / 45
읽기 약 2
FUNCTION

행렬: 데이터 테이블의 수학


핵심 개념

행렬 = 2D 배열. 덧셈·곱셈·전치 — 이미지(픽셀)·DB 테이블·엑셀 시트의 수학적 표현.

본문

행렬 = 행 × 열

📋 코드 (6줄)
A = [[1, 2, 3],
     [4, 5, 6]]
형태: 2 × 3 (2행 3열)

원소: A[i][j] (i=행, j=열)
A[0][0] = 1, A[1][2] = 6

numpy 행렬

PYTHON📋 코드 (25줄)
import numpy as np

A = np.array([[1, 2, 3],
              [4, 5, 6]])
B = np.array([[7, 8, 9],
              [1, 2, 3]])

print(A.shape)  # (2, 3)
print(A.size)   # 6 (총 원소 수)

# 덧셈 — 같은 형태만
print(A + B)
# [[8 10 12]
#  [5  7  9]]

# 스칼라 곱
print(A * 2)
# [[2  4  6]
#  [8 10 12]]

# 원소별 곱 (Hadamard product)
print(A * B)
# [[7 16 27]
#  [4 10 18]]
# ⚠️ 이건 행렬 곱셈 아님 — 다음 챕터에서

전치 행렬 (Transpose)

PYTHON📋 코드 (29줄)
# 행과 열 뒤바꾸기 — A[i][j] → A[j][i]

A = np.array([[1, 2, 3],
              [4, 5, 6]])
print(A.T)
# [[1 4]
#  [2 5]
#  [3 6]]

# 형태가 (2, 3) → (3, 2)


# 응용 — 데이터 가공
# 학생별 점수 (학생 행, 과목 열)
scores = np.array([
    [80, 90, 70],  # 학생 1
    [85, 88, 95],  # 학생 2
    [70, 60, 75],  # 학생 3
])

# 과목별 평균
print(scores.mean(axis=0))  # [78.3 79.3 80.0]

# 학생별 평균
print(scores.mean(axis=1))  # [80.0 89.3 68.3]


# 전치 후 — 과목 행, 학생 열
print(scores.T.shape)  # (3, 3)

실전 — 이미지 처리

PYTHON📋 코드 (34줄)
# 이미지 = 픽셀 행렬 (그레이) 또는 3D 텐서 (RGB)

# 가상 8x8 그레이 이미지
import numpy as np

img = np.array([
    [0, 0, 0, 0, 0, 0, 0, 0],
    [0, 0, 1, 1, 1, 1, 0, 0],
    [0, 1, 1, 0, 0, 1, 1, 0],
    [0, 1, 0, 0, 0, 0, 1, 0],
    [0, 1, 0, 0, 0, 0, 1, 0],
    [0, 1, 1, 0, 0, 1, 1, 0],
    [0, 0, 1, 1, 1, 1, 0, 0],
    [0, 0, 0, 0, 0, 0, 0, 0],
]) * 255  # 0=검정, 255=흰색


# 좌우 반전 — 열 뒤집기
flipped = img[:, ::-1]

# 상하 반전 — 행 뒤집기
upside = img[::-1, :]

# 90도 회전 — 전치 + 좌우 반전
rotated = img.T[:, ::-1]


# 밝기 조절
brighter = np.clip(img + 50, 0, 255)
darker = np.clip(img - 50, 0, 255)


# 음화 (negative)
negative = 255 - img

실전 — 엑셀/DB 테이블

PYTHON📋 코드 (31줄)
import pandas as pd

# DataFrame은 강화된 행렬
df = pd.DataFrame({
    'name':   ['Alice', 'Bob', 'Charlie'],
    'age':    [25, 30, 28],
    'salary': [50000, 60000, 55000],
})

print(df)
#       name  age  salary
# 0    Alice   25   50000
# 1      Bob   30   60000
# 2  Charlie   28   55000


# 행렬처럼 슬라이싱
print(df.iloc[0:2, 1:3])  # 행 0~1, 열 1~2

# 통계 (행렬 연산)
print(df[['age', 'salary']].mean())
# age          27.67
# salary    55000.00


# 기본 행렬 변환
matrix = df[['age', 'salary']].values
print(matrix)
# [[   25 50000]
#  [   30 60000]
#  [   28 55000]]

단위 행렬과 영행렬

PYTHON📋 코드 (24줄)
# 단위 행렬 (Identity Matrix) — 대각선 1, 나머지 0
I = np.eye(3)
print(I)
# [[1. 0. 0.]
#  [0. 1. 0.]
#  [0. 0. 1.]]

# 행렬 곱 시 항등원 — A · I = A


# 영행렬 (Zero Matrix)
Z = np.zeros((2, 3))
print(Z)
# [[0. 0. 0.]
#  [0. 0. 0.]]


# 1로 채운 행렬
O = np.ones((2, 3))


# 무작위 행렬
R = np.random.rand(3, 3)  # 0~1 난수
N = np.random.randn(3, 3) # 표준 정규 분포

다음 챕터

CH.37 "행렬 곱셈" — AI의 핵심 연산, 신경망의 본질.


AI 프롬프트
🤖 AI에게 잘 물어보는 법 — 모델·전략별 프롬프트
Claude

무료: Sonnet 4.6 / Pro $20/mo: Opus 4.6

내 데이터를 행렬로 표현하고 통계
분석 + 변환을 numpy로 실습하는
예제 5개를 만들어줘.
ChatGPT

무료: GPT-5.5 / Plus $20/mo: GPT-5.5 Pro

한국 데이터 분석가의 행렬·DataFrame
실무 활용 패턴 5가지를 비교해줘.
Gemini

무료: 2.5 Flash / Pro $19.99/mo: 3.1 Pro

내 이미지/표 데이터에 행렬 변환을
적용한 실전 예제 + 자동화 스크립트를
만들어줘.
Grok

무료: Grok 4.1 / SuperGrok $30/mo

2026년 데이터 분석 도구
(pandas/Polars/DuckDB) 비교와 추천을
솔직히 알려줘.

⭐ 이것만 기억하세요
행렬: 데이터 테이블의 수학 이 3가지만 확실히 잡으세요
1.행렬은 데이터 테이블의 수학적 표현 — 이미지·엑셀·DB 모두 행렬로 다룸
2.전치(.T)로 행과 열 뒤바꾸기 — 데이터 가공의 핵심 도구
3.다음 챕터 CH.37에서 행렬 곱셈 — AI/신경망의 핵심 연산


공유하기
진행도 36 / 45