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=',')