๐ numpy ์ดํดํ๊ธฐ
numpy๋ ๋ฌด์์ผ๊น?
๋ค์ฐจ์ ๋ฐฐ์ด์ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋๋ก ๋์์ฃผ๋ ๋๊ตฌ์ด๋ค.
numpy์ ์ฐจ์์ ์๋์ ๊ฐ์ด ๊ตฌ์ฑ๋์ด ์๋ค.
- 1์ฐจ์ ์ถ(ํ) : axis 0 => Vector
- 2์ฐจ์ ์ถ(์ด) : axis 1 => Matrix(ํ๋ ฌ)
- 3์ฐจ์ ์ถ(์ฑ๋) : axis 2 -> Tensor(3์ฐจ์ ์ด์)
๐ ๋ฐฐ์ด ๋ง๋ค๊ธฐ
1. list๋ฅผ numpy๋ก ๋ณํํด๋ณด์
#list๋ฅผ numpy๋ก ๊ฐ์ ธ์ค๊ธฐ
import numpy as np # ๋ํ์ด ๋ถ๋ฌ์ค๊ณ , ์์ผ๋ก np๋ผ๊ณ ๋ถ๋ฅธ๋ค
list_data = [1,2,3]
array = np.array(list_data) #list_data๋ฅผ ๊ฐ์ง๊ณ ๋ฐฐ์ด์ ์์ฑํ๋ค.
print(array)
print(array.size) #๋ฐฐ์ด์ ํฌ๊ธฐ(์์ ๋ช ๊ฐ์ธ๊ฐ?)
print(array.dtype) #๋ฐฐ์ด ์์์ ํ์
print(array[1]) #๋ฐฐ์ด์ค์ ํน์ ์์น์ ์์ ๊ฐ์ ธ์ค๊ธฐ
[1 2 3]
3
int64
2
***np.array()๋ ๋ฆฌ์คํธ, ํํ๊ณผ ๊ฐ์ ์ํ ๊ฐ๋ฅํ ๊ฐ์ฒด๋ฅผ ์ธ์๋ก ๋ฐ์ ๋ฐฐ์ด์ ์์ฑํ๋ ํจ์
***array.size๋ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ๋งํ๋ฉฐ, '๋ช ๊ฐ์ ์์๋ฅผ ๊ฐ์ง๊ณ ์๋๊ฐ?'๋ฅผ ๋ณธ๋ค
***array.dtype์ ๋ฐฐ์ด ์์์ ๋ฐ์ดํฐ ํ์ ์ ๋งํ๋ค
2. 1์ฐจ์ ๋ฐฐ์ด ๋ง๋ค๊ธฐ(ํ)
import numpy as np
array1 = np.arange(4)
print(array1)
[0 1 2 3]
***np.arange(์์๊ฐ,๋๊ฐ,์คํ ๊ฐ)์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ, ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ ๊ฐ์ ์์ฑํ๋ค. ํ์ง๋ง start,end,step ์ค ํ๋๋ผ๋ ์ค์ ํํ๋ก ์ ๋ ฅ๋๋ฉด ๊ฒฐ๊ณผ ๋ฐฐ์ด๋ ์ค์ ํํ๋ก ์์ฑ๋๋ค.
3. 2์ฐจ์ ๋ฐฐ์ด ๋ง๋ค๊ธฐ(๋ชจ๋ ๊ฐ์ 0์ผ๋ก ์ค์ )
import numpy as np
array2 = np.zeros((4,4),dtype=float)
print(array2)
[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
np.zeros(shape, dtype)์ด๋ฉฐ, ์์ฑํ ๋ฐฐ์ด์ ํํ์ ๋ฐ์ดํฐํ์ ์ผ๋ก ๊ตฌ์ฑ๋์ด, ๋ชจ๋ ์์๊ฐ 0์ธ ๋ฐฐ์ด์ด ์์ฑ๋๋ค.
4. 2์ฐจ์ ๋ฐฐ์ด ๋ง๋ค๊ธฐ(๋ชจ๋ ๊ฐ์ 1๋ก ์ค์ )
import numpy as np
array3 = np.ones((3,3), dtype=str)
print(array3)
[['1' '1' '1']
['1' '1' '1']
['1' '1' '1']]
np.ones(shape,dtype)์ด๋ฉฐ, ๋ชจ๋ ์์๊ฐ 1์ธ ๋ฐฐ์ด์ ์์ฑํ๋ค.
5. 2์ฐจ์ ๋ฐฐ์ด ๋ง๋ค๊ธฐ (๋๋ค๊ฐ์ผ๋ก ์ค์ )
import numpy as np
array4 = np.random.randint(0,10, (3,3)) #random.randint(start,end,(๋ฐฐ์ด))
print(array4)
[[1 0 9]
[5 1 3]
[7 9 3]]
***np.random.randint(start,end,(๋ฐฐ์ด)) ํจ์๋ ๋ฌด์์๋ก ์ ์๋ฅผ ์์ฑํ์ฌ ๋ฐฐ์ด์ ๋ง
6. ๊ธฐํ ๋๋ค ๋ชจ๋์ ํจ์
- np.random.rand(): 0๊ณผ 1 ์ฌ์ด์ ๊ท ๋ฑ ๋ถํฌ์์ ๋ฌด์์ ์ค์ ์์ฑ
- np.random.randn(): ํ์ค ์ ๊ท ๋ถํฌ์์ ๋ฌด์์ ์ค์ ์์ฑ
- np.random.normal(): ์ง์ ๋ ํ๊ท ๊ณผ ํ์ค ํธ์ฐจ๋ฅผ ๊ฐ์ง๋ ์ ๊ท ๋ถํฌ์์ ๋ฌด์์ ์ค์ ์์ฑ
๐ ๋ฐฐ์ด ํฉ์น๊ณ ๋๋๊ธฐ
1. ๋ฐฐ์ด ํฉ์น๊ธฐ
import numpy as np
array1 = np.array([1,2,3])
array2 = np.array([4,5,6])
array3 = np.concatenate([array1, array2])
print(array3)
print(array3.shape)
array4 = array3.reshape((2,3))
print(array4)
[1 2 3 4 5 6]
(6,)
[[1 2 3]
[4 5 6]]
*** np.concatenate([array1, array2, ...], axis=none) ํจ์๋ Numpy ๋ฐฐ์ด์ ํ๋๋ก ํฉ์น๋(concatenate) ํจ์์ด๋ค. ์ฌ๋ฌ ๊ฐ์ ๋ฐฐ์ด์ ์ ๋ ฅ์ผ๋ก ๋ฐ์ ์ง์ ๋ ์ถ(axis)์ ๋ฐ๋ผ ์ด์ด ๋ถ์ผ ์ ์๋ค.
***np.reshape(new_shape) ํจ์๋ ํํ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ผ๋ก ์ํ๋ ๋ฐฐ์ด๋ก ๋ณ๊ฒฝํ ์ ์๋ค. ์ํ๋ (ํ, ์ด)์ ๋ฃ์ผ๋ฉด ๋๋ค.
2. ๋ฐฐ์ดํฉ์น๊ธฐ(2)
array5 = np.arange(4).reshape(1,4)
array6 = np.arange(8).reshape(2,4)
array7 = np.concatenate([array5, array6], axis=0)
print(array7)
[[0 1 2 3]
[0 1 2 3]
[4 5 6 7]]
3. ๋ฐฐ์ด ๋๋๊ธฐ
import numpy as np
array = np.arange(8).reshape(2,4)
left,right = np.split(array,[2], axis=1)
print(left)
print(right)
[[0 1]
[4 5]]
[[2 3]
[6 7]]
'Studying > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Basic Python] 007. Numpy(3) (1) | 2025.08.15 |
---|---|
[Basic Python] 006. Numpy(2) (7) | 2025.08.15 |
[Basic Python] 004. ๋ฐ๋ณต๋ฌธ๊ณผ ์ ์ด ํค์๋ (5) | 2025.08.14 |
[Basic python] 003. ์ฐ์ฐ์์ ์กฐ๊ฑด๋ฌธ (3) | 2025.08.14 |
[Basic python] 002. ๋ฐ์ดํฐ ์ ์ถ๋ ฅ๊ณผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ (4) | 2025.08.14 |