๐Ÿ”ข NumPy Cheat Sheet

import numpy as np | 2026 Updated

1๋ฐฐ์—ด ์ƒ์„ฑ

np.array([1,2,3])        # 1D
np.array([[1,2],[3,4]])  # 2D
np.zeros(5)          # [0,0,0,0,0]
np.ones((3,4))       # 3ร—4 ์ „๋ถ€ 1
np.full((2,3), 7)    # 2ร—3 ์ „๋ถ€ 7
np.eye(4)            # 4ร—4 ๋‹จ์œ„ํ–‰๋ ฌ
np.empty((2,3))      # ์ดˆ๊ธฐํ™”X
np.arange(0,10,2)    # [0,2,4,6,8]
np.linspace(0,1,5)   # ๊ท ๋“ฑ 5๊ฐœ

2๋ฐฐ์—ด ์†์„ฑ & ํ˜•ํƒœ

์†์„ฑ์„ค๋ช…
arr.shape์ฐจ์› ํฌ๊ธฐ (ํ–‰,์—ด)
arr.ndim์ฐจ์› ์ˆ˜
arr.size์ „์ฒด ์š”์†Œ ์ˆ˜
arr.dtype๋ฐ์ดํ„ฐ ํƒ€์ž…
arr.T์ „์น˜ (ํ–‰โ†”์—ด)
arr.astype(np.float64) # ํƒ€์ž…๋ณ€ํ™˜
arr.reshape(3,4)      # ํ˜•ํƒœ ๋ณ€๊ฒฝ
arr.flatten()          # 1D ํ‰ํƒ„ํ™”
arr.tolist()           # ๋ฆฌ์ŠคํŠธ๋กœ
np.copy(arr)           # ๋ณต์‚ฌ
โš ๏ธ reshape=view(์›๋ณธ ์—ฐ๊ฒฐ), copy()๋กœ ๋…๋ฆฝ ๋ณต์‚ฌ

3์ธ๋ฑ์‹ฑ & ์Šฌ๋ผ์ด์‹ฑ

a = np.array([10,20,30,40,50])
a[0]      # 10 (์ฒซ๋ฒˆ์งธ)
a[-1]     # 50 (๋งˆ์ง€๋ง‰)
a[1:4]   # [20,30,40]
# 2D
m = np.array([[1,2,3],[4,5,6],[7,8,9]])
m[0,1]    # 2   (0ํ–‰1์—ด)
m[0,:]    # [1,2,3] 0ํ–‰
m[:,0]    # [1,4,7] 0์—ด
m[0:2,1:] # [[2,3],[5,6]]
# ๋ถˆ๋ฆฌ์–ธ / ํŒฌ์‹œ
a[a > 25]       # [30,40,50]
a[[0,2,4]]     # [10,30,50]

4๋ฐฐ์—ด ์—ฐ์‚ฐ (Element-wise)

a = np.array([1,2,3])
b = np.array([4,5,6])
a + b  # [5,7,9]   ๋ง์…ˆ
a * b  # [4,10,18] ๊ณฑ์…ˆ
a ** 2 # [1,4,9]   ์ œ๊ณฑ
a + 10 # [11,12,13] ์Šค์นผ๋ผ
ํ•จ์ˆ˜์„ค๋ช…
np.add / subtract๋ง์…ˆ / ๋บ„์…ˆ
np.multiply / divide๊ณฑ์…ˆ / ๋‚˜๋ˆ—์…ˆ
np.sqrt / exp / log์ œ๊ณฑ๊ทผ/์ง€์ˆ˜/๋กœ๊ทธ
np.abs / round์ ˆ๋Œ€๊ฐ’ / ๋ฐ˜์˜ฌ๋ฆผ
np.sin / cos / tan์‚ผ๊ฐํ•จ์ˆ˜

5ํ†ต๊ณ„ ํ•จ์ˆ˜

ํ•จ์ˆ˜์„ค๋ช…
np.mean(a) / a.mean()ํ‰๊ท 
np.median(a)์ค‘์•™๊ฐ’
np.std(a) / np.var(a)ํ‘œ์ค€ํŽธ์ฐจ/๋ถ„์‚ฐ
a.sum() a.min() a.max()ํ•ฉ/์ตœ์†Œ/์ตœ๋Œ€
a.argmin() a.argmax()์ตœ์†Œ/์ตœ๋Œ€ ์œ„์น˜
np.cumsum(a)๋ˆ„์ ํ•ฉ
np.corrcoef(a,b)์ƒ๊ด€๊ณ„์ˆ˜
np.percentile(a,75)๋ฐฑ๋ถ„์œ„
# axis ์ง€์ •
m.mean(axis=0)  # ์—ด๋ณ„(โ†“) ํ‰๊ท 
m.sum(axis=1)   # ํ–‰๋ณ„(โ†’) ํ•ฉ๊ณ„
axis=0: ์—ด ๋ฐฉํ–ฅ(โ†“), axis=1: ํ–‰ ๋ฐฉํ–ฅ(โ†’)

6๋ฐฐ์—ด ์กฐ์ž‘ (์ถ”๊ฐ€/๊ฒฐํ•ฉ/๋ถ„ํ• )

# ์ถ”๊ฐ€ / ์‚ฝ์ž… / ์‚ญ์ œ
np.append(a, [4,5])
np.insert(a, 1, 99)
np.delete(a, [0,2])
# ๊ฒฐํ•ฉ
np.concatenate([a, b])
np.vstack([a, b]) # ์„ธ๋กœ
np.hstack([a, b]) # ๊ฐ€๋กœ
# ๋ถ„ํ• 
np.split(a, 3)
np.hsplit(m, 2)  # ๊ฐ€๋กœ
np.vsplit(m, 2)  # ์„ธ๋กœ
# ์ •๋ ฌ
np.sort(a)       # ๋ณต์‚ฌ๋ณธ
np.argsort(a)    # ์ •๋ ฌ ์ธ๋ฑ์Šค

7๋ธŒ๋กœ๋“œ์บ์ŠคํŒ… & ์กฐ๊ฑด

# ๋ธŒ๋กœ๋“œ์บ์ŠคํŒ… (ํฌ๊ธฐ ๋‹ค๋ฅธ ๋ฐฐ์—ด)
m = np.ones((2,3))   # (2,3)
v = np.array([1,2,3]) # (3,)
m + v  # [[2,3,4],[2,3,4]]

# np.where (์กฐ๊ฑด๋ถ€ ์„ ํƒ)
np.where(a>2, a, 0)
# a>2์ด๋ฉด a๊ฐ’, ์•„๋‹ˆ๋ฉด 0

# ๋ถˆ๋ฆฌ์–ธ ๋ฉ”์„œ๋“œ
(a>2).sum()  # True ๊ฐœ์ˆ˜
(a>2).any()  # ํ•˜๋‚˜๋ผ๋„?
(a>2).all()  # ๋ชจ๋‘?

# ๊ณ ์œ ๊ฐ’ / ๋ฉค๋ฒ„์‹ญ
np.unique(a)
np.in1d(a, [1,3])

8์„ ํ˜•๋Œ€์ˆ˜ & ๋žœ๋ค & I/O

# ๋žœ๋ค
np.random.rand(3,4)      # 0~1
np.random.randn(3,4)     # ์ •๊ทœ
np.random.randint(0,10,(3,4))
np.random.seed(42)       # ์žฌํ˜„์„ฑ

# ์„ ํ˜•๋Œ€์ˆ˜
a @ b               # ํ–‰๋ ฌ๊ณฑ
np.linalg.inv(m)    # ์—ญํ–‰๋ ฌ
np.linalg.det(m)    # ํ–‰๋ ฌ์‹
np.linalg.eig(m)    # ๊ณ ์œ ๊ฐ’

# ํŒŒ์ผ I/O
np.save('a.npy', a)
a = np.load('a.npy')
np.savetxt('a.csv',a,delimiter=',')
a = np.loadtxt('a.csv',delimiter=',')