๊ฐœ๋ฐœ ํƒ€์ž„์บก์А/Python

[Python] Numpy - ๋ฐฐ์—ด ์Šฌ๋ผ์ด์‹ฑ(slicing)

๐ŸฅญMango 2020. 9. 18. 21:08

๋ฐฐ์—ด ์Šฌ๋ผ์ด์‹ฑ

ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ์™€ ์œ ์‚ฌํ•˜๊ฒŒ 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๋ฅผ ์ œ๊ณตํ•  ๋ฟ์ด๋‹ค.

๋”ฐ๋ผ์„œ ์œ„์˜ ์˜ˆ์‹œ์™€ ๊ฐ™์ด ์Šฌ๋ผ์ด์Šค ๋œ ๋ฐฐ์—ด์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•˜๋ฉด ์›๋ž˜ ๋ฐฐ์—ด์˜ ๊ฐ’๋„ ์ˆ˜์ •๋œ๋‹ค.

 

a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])

row_r1 = a[1, :]
row_r2 = a[1:2, :]

print(row_r1, row_r1.shape)
#[5 6 7 8] (4,)

print(row_r2, row_r2.shape)
#[[5 6 7 8]] (1, 4)

1ํ–‰๋งŒ ๋ฝ‘์•„๋‚ด๋”๋ผ๋„ row_r2์™€ ๊ฐ™์ด ๊ตฌ๊ฐ„์œผ๋กœ ๋ฝ‘์œผ๋ฉด ์ฐจ์›์ด ๋ณด์กด๋˜๋Š”๋ฐ ๊ทธ ์ฐจ์›์˜ ๊ธธ์ด๊ฐ€ 1์ด ๋˜๊ณ , 

row_r1๊ณผ ๊ฐ™์ด 1ํ–‰๋งŒ ๋ฝ‘์„ ๊ฒฝ์šฐ ์ฐจ์›์ด ์ค„์–ด 2์ฐจ์›์ด 1์ฐจ์›์ด ๋œ๋‹ค,

shape์„ ๋ณด๋ฉด ์•Œ์ˆ˜์žˆ๋‹ค, row_r1์€ ๊ธธ์ด๊ฐ€ 4์ธ 1์ฐจ์›๋ฐฐ์—ด, row_r2๋Š” 1*4์ธ 2์ฐจ์›๋ฐฐ์—ด