๋ฐฐ์ด reshape
Numpy๋ฐฐ์ด์ ์์์ ๊ฐ์๊ฐ ์ ์ง๋๋ ๊ฒฝ์ฐ์ ์์ ๋กญ๊ฒ ๋ค๋ฅธ shape๋ก ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ค.
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])
print(arr) #4*3
#[[ 1 2 3]
#[ 4 5 6]
#[ 7 8 9]
#[10 11 12]]
4*3์ ๋ฐฐ์ด์ด ์์ ๋
arr1 = np.reshape(arr, (12))
print(arr1)
#[ 1 2 3 4 5 6 7 8 9 10 11 12]
์ด๋ฐ์์ผ๋ก ์์์ ๊ฐ์๊ฐ ๊ฐ์ ๊ฒฝ์ฐ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ค.
arr1 = arr.reshape(12)
print(arr1)
#[ 1 2 3 4 5 6 7 8 9 10 11 12]
์์ ์ฝ๋๋ฅผ ์ด๋ฐ์์ผ๋ก ์ฌ์ฉํ ์๋ ์๋ค.
arr2 = arr.reshape(2, 6)
print(arr2)
#[[ 1 2 3 4 5 6]
# [ 7 8 9 10 11 12]]
arr3 = np.reshape(arr, (2, 2, 3))
print(arr3)
#[[[ 1 2 3]
#[ 4 5 6]]
#[[ 7 8 9]
#[10 11 12]]]
์ฌ๋ฌ๊ฐ์ง ํํ๋ก ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ค.
arr4 = np.reshape((arr, 3, 3)) #error
ํ์ง๋ง ์ด์ ๊ฐ์ด ์์์ ๊ฐ์๊ฐ ๋ง์ง ์์ ๊ฒฝ์ฐ ๋ณ๊ฒฝ์ด ๋ถ๊ฐ๋ฅํ๋ค.
arr3[0, 0, 0] = 99
print(arr)
#[[99 2 3]
#[ 4 5 6]
#[ 7 8 9]
#[10 11 12]]
์์ ์ฝ๋๋ฅผ ๋ณด๋ฉด ์ ์ ์๋ฏ
๋ฐฐ์ด reshape์ ๋ฐฐ์ด์ ๋ณต์ฌํ์ฌ ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํ๋๊ฒ ์๋๋ผ ์กด์ฌํ๋ ๋ฐฐ์ด์ ๋ํ ์๋ก์ด View๋ฅผ ์ ๊ณตํ ๋ฟ์ด๋ค.
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
newarr = arr.reshape(2, 2, -1)
print(newarr)
#[[[1 2]
# [3 4]]
#[[5 6]
# [7 8]]]
๋ฐฐ์ด reshape์์ ์์์ ๊ฐ์๋ ๋ณด์กด๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ์ฐจ์์ ํฌ๊ธฐ๋ฅผ ๋ช ์ํ ํ์๋ ์๋ค.
์๋์ผ๋ก ๊ณ์ฐ์ด ๊ฐ๋ฅํ๋ค๋ฉด -1์ ๋์ ์ฌ์ฉํ ์ ์๋ค.
*์ฌ๊ธฐ์ -1์ -1์ด ์๋๋ค.
wrongarr = arr.reshape(2, -1, -1) #error
์ด๋ฌํ ๊ฒฝ์ฐ ์ฐจ์์ ํฌ๊ธฐ๊ฐ ์๋์ผ๋ก ๊ณ์ฐ๋ ์ ์์ผ๋ฏ๋ก ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
1์ฐจ์ ๋ฐฐ์ด๋ก reshape
arr = np.array([[1, 2, 3], [4, 5, 6]])
newarr = arr.reshape(-1)
print(newarr)
#[1 2 3 4 5 6]
print(np.ravel(arr))
print(arr.ravel())
#[1 2 3 4 5 6]
print(arr.flatten())
#[1 2 3 4 5 6]
#print(np.flatten(arr)) error
1์ฐจ์ ๋ฐฐ์ด๋ก reshapeํ๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋ค.
์ฐจ์์ ํฌ๊ธฐ๋ฅผ ์๋์ผ๋ก ๊ณ์ฐํด์ฃผ๋ -1์ ์ฌ์ฉํ๊ฑฐ๋, ravel, flatten์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์๋๋ฐ
ravel์ ๊ฒฝ์ฐ ๋๊ฐ์ง ๋ฐฉ๋ฒ์ด ๋ค ์ฌ์ฉ๊ฐ๋ฅํ์ง๋ง,
flatten์ ๊ฒฝ์ฐ np.flatten()์ ๊ฐ์ ํ์์ ์ง์ํ์ง ์๋๋ค.
'๊ฐ๋ฐ ํ์์บก์ > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] Numpy - ๋ฐฐ์ด ํฉ์น๊ธฐ (0) | 2020.09.19 |
---|---|
[Python] Numpy - ๋ฐฐ์ด ์ฌ๋ผ์ด์ฑ(slicing) (0) | 2020.09.18 |
[Python] Numpy ๋ฐฐ์ด / Numpy๋ฐฐ์ด ํจ์ (0) | 2020.09.18 |
[Python] 2์ง์ 8์ง์ 16์ง์ -> 10์ง์ -> 2์ง์ 8์ง์ 16์ง์ (0) | 2020.09.07 |
[Python] ๋์ ๋๋ฆฌ(Dictionary) (0) | 2020.09.01 |