[Python] Numpy - ๋ฐฐ์—ด ์—ฐ์‚ฐ(Array math), ๋ธŒ๋กœ๋“œ์บ์ŠคํŒ…(Broadcasting)
ยท
๊ฐœ๋ฐœ ํƒ€์ž„์บก์Š/Python
๋ฐฐ์—ด ์—ฐ์‚ฐ Numpy ๋ฐฐ์—ด์— ๋Œ€ํ•œ ์‚ฌ์น™์—ฐ์‚ฐ์€ ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋ณ„๋กœ ๋™์ž‘ํ•œ๋‹ค. x = np.array([[1, 2], [3, 4]], dtype=np.float64) y = np.array([[5, 6], [7, 8]], dtype=np.float64) + print(x + y) #[[ 6. 8.] #[10. 12.]] print(np.add(x, y)) #[[ 6. 8.] #[10. 12.]] - print(x - y) #[[-4. -4.] #[-4. -4.]] print(np.subtract(x, y)) #[[-4. -4.] #[-4. -4.]] * print(x * y) #[[ 5. 12.] #[21. 32.]] print(np.multiply(x, y)) #[[ 5. 12.] #[21. 32.]] ์ฐธ..
[Python] Numpy - ๋ฐฐ์—ด ์ธ๋ฑ์‹ฑ(Array Indexing)
ยท
๊ฐœ๋ฐœ ํƒ€์ž„์บก์Š/Python
์ •์ˆ˜ ๋ฐฐ์—ด ์ธ๋ฑ์‹ฑ ๋ฐฐ์—ด์—์„œ ํ•˜๋‚˜์˜ ๋‹จ์ผํ•œ ์›์†Œ๋ฅผ ์—‘์„ธ์Šค ํ•  ๊ฒฝ์šฐ tuple๋กœ ์ธ๋ฑ์‹ฑ ์ด๊ฒƒ์˜ ๋ชฉ์ ์€ ๋ฐฐ์—ด์— ์ €์žฅ๋œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ฐ’์„ ํ•œ๊บผ๋ฒˆ์— ๋ฝ‘์•„๋‚ด์„œ ๋˜ ๋‹ค๋ฅธ ํ•˜๋‚˜์˜ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๋ ค๋Š” ๊ฒƒ์ด๋‹ค. ์Šฌ๋ผ์ด์‹ฑ์„ ํ•˜๋ฉด ์›๋ณธ ๋ฐฐ์—ด์˜ ์—ฐ์†์ ์ธ ๋ฐฐ์—ด์ด๊ฑฐ๋‚˜, ํ˜น์€ ์ผ์ •ํ•œ ๊ทœ์น™์„ ๋”ฐ๋ผ์„œ ์ž˜๋ผ๋‚ธ ํ˜•ํƒœ์ง€๋งŒ, ์ •์ˆ˜ ๋ฐฐ์—ด ์ธ๋ฑ์‹ค์€ ๋ถˆ๊ทœ์น™์ ์œผ๋กœ ์›๋ณธ ๋ฐฐ์—ด์˜ ์ผ๋ถ€๋ฅผ ๋ฝ‘์„ ์ˆ˜ ์žˆ๋‹ค. *์Šฌ๋ผ์ด์‹ฑ์€ ๋‹จ์ง€ ์›๋ณธ ๋ฐฐ์—ด์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด View๋ฅผ ์ƒ์„ฑํ•˜๋Š”๊ฒƒ์— ์ง€๋‚˜์ง€ ์•Š์ง€๋งŒ, ์ •์ˆ˜๋ฐฐ์—ด ์ธ๋ฑ์‹ฑ์€ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. 1์ฐจ์› ๋ฐฐ์—ด์— ๋Œ€ํ•œ ์ •์ˆ˜ ๋ฐฐ์—ด ์ธ๋ฑ์‹ฑ ์ธ๋ฑ์Šค๋กœ ์‚ฌ์šฉ๋œ ๋ฐฐ์—ด์˜ ๊ฐ ๊ฐ’์€ ๊ทธ ์ž๋ฆฌ์— ์˜ฌ ์›๋ž˜ ๋ฐฐ์—ด์˜ ๊ฐ’์˜ ์œ„์น˜๋ฅผ ํ‘œ์‹œํ•œ๋‹ค. x = np.arange(10, 1, -1) print(x) #[10 9 8 7 6 5 4 3 2] print(..
[Python] Numpy - ๋ฐฐ์—ด ํ•ฉ์น˜๊ธฐ
ยท
๊ฐœ๋ฐœ ํƒ€์ž„์บก์Š/Python
Concatenate ํ•จ์ˆ˜๋กœ ๋ฐฐ์—ด ํ•ฉ์น˜๊ธฐ arr1 = np.array([1, 2, 3]) arr2 = np.array([4, 5]) arr = np.concatenate((arr1, arr2)) print(arr) #[1, 2, 3, 4, 5] Numpy๋Š” ๋‘˜ ์ด์ƒ์˜ ๋ฐฐ์—ด์„ ํŠน์ • ์ถ•(axis)์„ ๋”ฐ๋ผ์„œ ํ•ฉ์น˜๋Š” concatenate๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ๋ฐฐ์—ด๋“ค์€ ๋™์ผํ•œ rank๋ฅผ ๊ฐ€์ ธ์•ผํ•˜๊ณ , ํ•ฉ์ณ์งˆ ์ถ•์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ์ถ•์œผ๋กœ๋Š” ๋™์ผํ•œ ๊ธธ์ด๋ฅผ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค. ๋งŒ๋“ค์–ด์ง„ ๋ฐฐ์—ด์€ ์ž…๋ ฅ๋œ ๋ฐฐ์—ด๊ณผ ๋™์ผํ•œ rank๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค. arr1 = np.array([[1, 2], [3, 4]]) arr2 = np.array([[5, 6], [7, 8]]) arr3 = np.concatenate((arr1, arr2), axis=..
[Python] Numpy - ๋ฐฐ์—ด ์Šฌ๋ผ์ด์‹ฑ(slicing)
ยท
๊ฐœ๋ฐœ ํƒ€์ž„์บก์Š/Python
๋ฐฐ์—ด ์Šฌ๋ผ์ด์‹ฑ ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ์™€ ์œ ์‚ฌํ•˜๊ฒŒ Numpy ๋ฐฐ์—ด๋„ ์Šฌ๋ผ์ด์‹ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) b = a[:2, 1:3] print(b) #[[2 3] #[6 7]] Numpy๋ฐฐ์—ด์˜ ๊ฒฝ์šฐ ๋‹ค์ฐจ์›์ธ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ป๊ฒŒ ์Šฌ๋ผ์ด์‹ฑ ํ• ์ง€ ๋ช…ํ™•ํ•˜๊ฒŒ ํ•ด์•ผํ•œ๋‹ค. print(a[0, 1]) #2 b[0, 0] = 77 #b์˜ [0, 0]์€ a์˜ [0, 1] print(a) #[[ 1 77 3 4] #[ 5 6 7 8] #[ 9 10 11 12]] Numpy๋ฐฐ์—ด์˜ ์Šฌ๋ผ์ด์‹ฑ์€ ๋ฆฌ์ŠคํŠธ์™€ ๋‹ฌ๋ฆฌ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ธฐ์กด ๋ฐฐ์—ด์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด View๋ฅผ ์ œ๊ณตํ•  ๋ฟ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์œ„์˜ ์˜ˆ์‹œ์™€ ๊ฐ™์ด ์Šฌ๋ผ์ด์Šค ๋œ ๋ฐฐ์—ด์˜ ๊ฐ’์„ ์ˆ˜..