์ด ๋ฌธ์์ ์๋ณธ์ ์ธ๋ถ ์ํค์์ ๊ฐ์ ธ์์ต๋๋ค.
NumPy ๋ํ์ด | |
๋ฒ์ | 1.19.0 2020๋ 9์ 20์ผ ์ ๋ฐ์ดํธ |
์น์ฌ์ดํธ | |
1. ๊ฐ์[ํธ์ง]
Numarray์ Numeric์ด๋ผ๋ ์ค๋๋ Python ํจํค์ง๋ฅผ ๊ณ์นํด์ ๋์จ ์ํ ๋ฐ ๊ณผํ ์ฐ์ฐ์ ์ํ ํ์ด์ฌ ํจํค์ง์ด๋ค. Py๋ ํ์ด์ฌ์ ๋ํ๋ด๊ธฐ ๋๋ฌธ์, ์ผ๋ฐ์ ์ผ๋ก ๋ํ์ด๋ผ๊ณ ์ฝ๋๋ค.
ํ๋ก๊ทธ๋๋ฐ ํ๊ธฐ ์ด๋ ค์ด C, C++, Fortran[1] ๋ฑ์ ์ธ์ด์ ๋นํ๋ฉด, NumPy๋ก๋ ๊ฝค๋ ํธ๋ฆฌํ๊ฒ ์์นํด์์ ์คํํ ์ ์๋ค. ๊ฒ๋ค๊ฐ Numpy ๋ด๋ถ๋ ์๋น๋ถ๋ถ C๋ ํฌํธ๋์ผ๋ก ์์ฑ๋์ด ์คํ ์๋๋ ๊ฝค ๋น ๋ฅธํธ์ด๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก array๋ผ๋ ์๋ฃ๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ ๋ฐํ์ผ๋ก ์์ธ, ์ฒ๋ฆฌ, ์ฐ์ฐ ๋ฑ์ ํ๋ ๊ธฐ๋ฅ์ ์ํํ๋ค. ๋ฌผ๋ก ๋ํ์ด ์์ฒด๋ง์ผ๋ก๋ ๋์์์ฑ, ํธ๋ฆฌ์๋ณํ, ํ๋ ฌ์ฐ์ฐ, ๊ฐ๋จํ ๊ธฐ์ ํต๊ณ ๋ถ์ ์ ๋๋ ๊ฐ๋ฅํ์ง๋ง ์ค์ ๋ก๋ Scipy, Pandas, matplotlib ๋ฑ ๋ค๋ฅธ Python ํจํค์ง์ ํจ๊ป ์ฐ์ด๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
ํ์ด์ฌ์ผ๋ก ์์นํด์, ํต๊ณ ๊ด๋ จ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ค๊ณ ํ ๋ Numpy๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ ๋ชจ๋์ด๋ค. ๊ทธ๋งํผ Numpy๋ ์์นํด์, ํต๊ณ ๊ด๋ จ ์์ ์ ์ค์ํ ์ญํ ์ ํ๋ฏ๋ก, ํ์ด์ฌ์ผ๋ก ๊ด๋ จ ๋ถ์ผ์ ๋์ ํ๊ณ ์ ํ๋ค๋ฉด ๋ฐ๋์ ์ด์ ๋ํ ๊ธฐ์ด๋ฅผ ์ ์์๋๊ณ ๊ฐ์.
ํ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฐ์ด๋ ๋ชจ๋์ด๋ค ๋ณด๋ Numpy๋ฅผ ๋ณดํต np๋ก ํธ์ถํ๋ ๊ฒ์ด ๊ด๋ก๊ฐ ๋์๋ค. Ex) import numpy as np
ํ๋ก๊ทธ๋๋ฐ ํ๊ธฐ ์ด๋ ค์ด C, C++, Fortran[1] ๋ฑ์ ์ธ์ด์ ๋นํ๋ฉด, NumPy๋ก๋ ๊ฝค๋ ํธ๋ฆฌํ๊ฒ ์์นํด์์ ์คํํ ์ ์๋ค. ๊ฒ๋ค๊ฐ Numpy ๋ด๋ถ๋ ์๋น๋ถ๋ถ C๋ ํฌํธ๋์ผ๋ก ์์ฑ๋์ด ์คํ ์๋๋ ๊ฝค ๋น ๋ฅธํธ์ด๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก array๋ผ๋ ์๋ฃ๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ ๋ฐํ์ผ๋ก ์์ธ, ์ฒ๋ฆฌ, ์ฐ์ฐ ๋ฑ์ ํ๋ ๊ธฐ๋ฅ์ ์ํํ๋ค. ๋ฌผ๋ก ๋ํ์ด ์์ฒด๋ง์ผ๋ก๋ ๋์์์ฑ, ํธ๋ฆฌ์๋ณํ, ํ๋ ฌ์ฐ์ฐ, ๊ฐ๋จํ ๊ธฐ์ ํต๊ณ ๋ถ์ ์ ๋๋ ๊ฐ๋ฅํ์ง๋ง ์ค์ ๋ก๋ Scipy, Pandas, matplotlib ๋ฑ ๋ค๋ฅธ Python ํจํค์ง์ ํจ๊ป ์ฐ์ด๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
ํ์ด์ฌ์ผ๋ก ์์นํด์, ํต๊ณ ๊ด๋ จ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ค๊ณ ํ ๋ Numpy๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ ๋ชจ๋์ด๋ค. ๊ทธ๋งํผ Numpy๋ ์์นํด์, ํต๊ณ ๊ด๋ จ ์์ ์ ์ค์ํ ์ญํ ์ ํ๋ฏ๋ก, ํ์ด์ฌ์ผ๋ก ๊ด๋ จ ๋ถ์ผ์ ๋์ ํ๊ณ ์ ํ๋ค๋ฉด ๋ฐ๋์ ์ด์ ๋ํ ๊ธฐ์ด๋ฅผ ์ ์์๋๊ณ ๊ฐ์.
ํ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฐ์ด๋ ๋ชจ๋์ด๋ค ๋ณด๋ Numpy๋ฅผ ๋ณดํต np๋ก ํธ์ถํ๋ ๊ฒ์ด ๊ด๋ก๊ฐ ๋์๋ค. Ex) import numpy as np
2. ๋ค๋ฅธ Python ํจํค์ง์์ ๊ด๊ณ[ํธ์ง]
- Scipy
Numpy์ Scipy๋ ์๋ก ๋จ์ด์ง ์ ์์ ์ ๋๋ก ๋ฐ์ ํ ๊ด๊ณ์ ์์ผ๋ฉฐ Scipy๋ฅผ ํ์ฉํ ๋์๋ ์๋นํ ๋ง์ด Numpy๋ฅผ ์ด์ฉํ๊ฒ ๋๋ค. ์ค์ ๋ก Scipy์ ๊ดํ ์ฑ
์ ๊ตฌ๋งคํ์ ๋ ์ฑ
์ ์๋ถ๋ถ์ Scipy ๊ด๋ จ ๋ด์ฉ๋ณด๋ค๋ ์คํ๋ ค Numpy์ ๊ธฐ์ด์ ๋ํ ๋ด์ฉ ์์ฃผ๋ก ๋ณด๊ฒ ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
Scipy๋ ์์นํด์์ Numpy๋ฅผ ์ด์ฉํ์ฌ ๋ณด๋ค ๋ณธ๊ฒฉ์ ์ผ๋ก ์ด์ฉํ ์ ์๊ฒ ํด ์ค๋ค. ์ฌ์ค ๋ํ ํ๋ถ ์์ค์ ์์นํด์ ๊ต์ฌ์ ์๋ ์ฌ๋ฌ ์์น ๋ฏธ๋ถ๋ฒ์ด๋ ์์น ์ ๋ถ๋ฒ, ์์น๋ฏธ๋ถ๋ฐฉ์ ์ ํด๋ฒ(๋ฃฝ๊ฒ-์ฟ ํ ๋ฐฉ๋ฒ ๋ฑ)์ ๊ตฌํํ๋ ๋ฐ์๋ ์ ์ ์ผ๋ก Python ๊ธฐ๋ณธ ๋ฉ์๋์ Numpy ๋ง์ผ๋ก ์ถฉ๋ถํ๋ค. ๊ทธ๋ ์ง๋ง Scipy๋ฅผ ์ด์ฉํ๋ฉด Numpy๋ง์ผ๋ก๋ ๊ธธ๊ฒ ์ฝ๋ฉํด์ผ ํ๋ ๊ธฐ๋ฒ๋ค์ ๋จ 2~3 ์ค์ ๊ตฌํํ ์ ์๋ค. ๊ฒ๋ค๊ฐ Numpy๋ก ๊ตฌํํ๊ธฐ ๋ง๋งํ๊ฑฐ๋ ์ฌ์ค์ ๋ถ๊ฐ๋ฅํ ๊ฒ๋ค๋ Scipy๋ก๋ ์ฝ๊ฒ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋ค. ๋ฐ๋ผ์ Numpy์ Scipy๋ฅผ ์ ์ ํ๊ฒ ํผ์ฉํ๊ฒ ๋๋ฉด MATLAB ๋ถ๋ฝ์ง ์์ ์์นํด์ ํด์ ์ป์ ์ ์ด ๋๋ค.
Scipy๋ ์์นํด์์ Numpy๋ฅผ ์ด์ฉํ์ฌ ๋ณด๋ค ๋ณธ๊ฒฉ์ ์ผ๋ก ์ด์ฉํ ์ ์๊ฒ ํด ์ค๋ค. ์ฌ์ค ๋ํ ํ๋ถ ์์ค์ ์์นํด์ ๊ต์ฌ์ ์๋ ์ฌ๋ฌ ์์น ๋ฏธ๋ถ๋ฒ์ด๋ ์์น ์ ๋ถ๋ฒ, ์์น๋ฏธ๋ถ๋ฐฉ์ ์ ํด๋ฒ(๋ฃฝ๊ฒ-์ฟ ํ ๋ฐฉ๋ฒ ๋ฑ)์ ๊ตฌํํ๋ ๋ฐ์๋ ์ ์ ์ผ๋ก Python ๊ธฐ๋ณธ ๋ฉ์๋์ Numpy ๋ง์ผ๋ก ์ถฉ๋ถํ๋ค. ๊ทธ๋ ์ง๋ง Scipy๋ฅผ ์ด์ฉํ๋ฉด Numpy๋ง์ผ๋ก๋ ๊ธธ๊ฒ ์ฝ๋ฉํด์ผ ํ๋ ๊ธฐ๋ฒ๋ค์ ๋จ 2~3 ์ค์ ๊ตฌํํ ์ ์๋ค. ๊ฒ๋ค๊ฐ Numpy๋ก ๊ตฌํํ๊ธฐ ๋ง๋งํ๊ฑฐ๋ ์ฌ์ค์ ๋ถ๊ฐ๋ฅํ ๊ฒ๋ค๋ Scipy๋ก๋ ์ฝ๊ฒ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋ค. ๋ฐ๋ผ์ Numpy์ Scipy๋ฅผ ์ ์ ํ๊ฒ ํผ์ฉํ๊ฒ ๋๋ฉด MATLAB ๋ถ๋ฝ์ง ์์ ์์นํด์ ํด์ ์ป์ ์ ์ด ๋๋ค.
- Sympy
Python์ ๋ํ์ ์ธ ๊ธฐํธ๊ณ์ฐ ํจํค์ง์ธ Sympy๋ Numpy์ ์ ์ฐ๋๋๋ค. ์์ปจ๋ Numpy ๋ง์ผ๋ก ๊ตฌํํ๊ธฐ ๊น๋ค๋ก์ด ํจ์์ ๊ฒฝ์ฐ, Sympy๋ก ์ํ๋ ํจ์๋ฅผ ๊ตฌํ๊ณ , ์ด ํจ์๋ฅผ ๋ฐํ์ผ๋ก Numpy๋ฅผ ์ด์ฉํ์ฌ ๊ทธ ํจ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฐฐ์ดํ ์๋ฃ๋ฅผ ๊ตฌํ ์ ์๋ค. ์ด๋ค sympy ํจ์๋ฅผ ์ผ๋จ ๊ตฌํ๊ธฐ๋ง ํ๋ฉด, f = sympy.lambdify(์ ์์ญ ๋ฌธ์, sympy ํจ์, 'numpy') ๊ผด์ ๊ฐ๋จํ ์ฝ๋ฉ๋ง์ผ๋ก Numpy์ ์ ์ฉ๊ฐ๋ฅํ ํจ์ f๋ฅผ ์ป์ ์ ์๋ค. ์ฌ๊ธฐ์์ f(np.linspace(0,1, 101)) ๋ฅผ ์
๋ ฅํ๋ฉด ํจ์์ ๋ํด 0์์ 1๊น์ง 100๋ฑ๋ถํ ์ ์์ญ ์ ๋ค์ ๋ํ ํจ์ซ๊ฐ๋ค์ ๋ฐฐ์ด์ ์ป๋๋ค. ๊ฐํน Numpy ์์ฒด๋ Scipy ๋ง์ผ๋ก ๊ตฌํ๊ธฐ ์ด๋ ค์ด ํจ์๋ Sympy๋ก๋ ๊ฐ๊ฒฐํ๊ฒ ๊ตฌํ ์ ์๋ ๊ฒฝ์ฐ๋ ๋ง์ผ๋ฏ๋ก Numpy์ Sympy๋ฅผ ๊ฐ์ด ๋ฐฐ์๋๋ฉด ์ฌ๋ฌ๋ชจ๋ก ์ธ๋ชจ๊ฐ ๋ง๋ค.
- Matplotlib
ํ์ด์ฌ์์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๊ทธ๋ํฝ ํจํค์ง์ธ Matplotlib์์๋ Numpy๋ ์์ฃผ ์ ์ฉ๋๋ค. ๋ฌผ๋ก ํ์ด์ฌ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ด์ฅ๋ ๋ฆฌ์คํธํ ์๋ฃ๋ก๋ ์ถฉ๋ถํ ์๋ง์ ์ข
๋ฅ์ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ํํํ ์ ์๋ค. ๊ทธ๋ฌ๋ ์๋ฌด๋๋ Numpy๋ฅผ ์ธ ๋๋ณด๋ค๋ ์ฝ๋๊ฐ ๊ต์ฅํ ๋ณต์กํด์ง๊ณ , ๊ทธ๋ํ๋ฅผ ์ป๋ ์๋๋ ๋๋ฆฌ๋ค. ์ค์ ๋ก ์ธํฐ๋ท ์์ Matplotlib ํํ ๋ฆฌ์ผ์ด๋ ์์ ๋ค์ ๋ด๋ ๋ค๋ค Numpy์ ndarray ์๋ฃํ์ ์ฐ์ง ๋ฆฌ์คํธํ์ ์ ์ฐ์ง ์๋๋ค. ๋น์ฐํ์ง๋ง Matplotlib ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ข ๋ ์ ๋ คํ ๊ทธ๋ํ์ ๋ํ๋ฅผ ์ป๋ seaborn ๊ณผ ๊ฐ์ ํจํค์ง์๋ ๊ต์ฅํ ์ ์ฉํ๊ฒ ์ฐ์ธ๋ค.
- Pandas
Pandas๋ Numpy๋ณด๋ค ๋ ๋ณต์กํ ํํ์ ์๋ฃ(Series, DataFrame)๋ฅผ ๋ค๋ฃจ์ง๋ง, Numpy๋ฅผ ์ด์ฉํด ๋ง๋ array ์๋ฃ๋ฅผ ์ด์ฉํด์ Series๋ DataFrame ์๋ฃ๋ฅผ ์์ฑํ๊ฑฐ๋ ์์ ํ ์ ์๋ค.
์ค์ ๋ก๋ 'Numpy + ๋ค๋ฅธ ํ๊ฐ์ ํจํค์ง' ์กฐํฉ๋ฟ๋ง ์๋๋ผ 'Numpy + ์ฌ๋ฌ๊ฐ์ ํจํค์ง' ์กฐํฉ์ ์ธ ๋๊ฐ ๋ง๋ค. ์์ปจ๋ Sympy ๋ก ํจ์์ ๋ผํ๋ผ์ค ๋ณํ ์ ๊ตฌํ๊ณ , Numpy๋ฅผ ์ด์ฉํด์ ๋ณํํ ํจ์์ ๊ฐ๋ค์ ๋ํ ๋ฐฐ์ดํ ์๋ฃ๋ฅผ ์ป๊ณ , ์ด ๋ฐฐ์ดํ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก Matplotlib์ ์จ์ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ฆด ์ ์๋ค.
์ค์ ๋ก๋ 'Numpy + ๋ค๋ฅธ ํ๊ฐ์ ํจํค์ง' ์กฐํฉ๋ฟ๋ง ์๋๋ผ 'Numpy + ์ฌ๋ฌ๊ฐ์ ํจํค์ง' ์กฐํฉ์ ์ธ ๋๊ฐ ๋ง๋ค. ์์ปจ๋ Sympy ๋ก ํจ์์ ๋ผํ๋ผ์ค ๋ณํ ์ ๊ตฌํ๊ณ , Numpy๋ฅผ ์ด์ฉํด์ ๋ณํํ ํจ์์ ๊ฐ๋ค์ ๋ํ ๋ฐฐ์ดํ ์๋ฃ๋ฅผ ์ป๊ณ , ์ด ๋ฐฐ์ดํ ์๋ฃ๋ฅผ ๋ฐํ์ผ๋ก Matplotlib์ ์จ์ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ฆด ์ ์๋ค.
3. ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํฌํจ๋ ํจ์[ํธ์ง]
.zeros(int) : int ๊ฐ์๋งํผ์ 0์ผ๋ก ์ด๋ฃจ์ด์ง array๋ฅผ ๋ง๋ค์ด ์ค๋ค. Np.zeros(10)์ (10,) ํํ์ 0์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฒกํฐ๋ฅผ ์์ฑํ๋ค. ๋ง์ฝ ํน์ ํ ํ์์ผ๋ก ๋ง๋ค๊ธธ ์ํ๋ค๋ฉด ๋ค์ .reshape(x,y..)๋ฅผ ๋ํ๋ฉด ๋๋ค.
.arange(): ํํ ์ฐ์ด๋ range ํจ์์ ์ ์ฌํ๋ค. ๋ฒ์์ ๊ฐ๊ฒฉ ์ค์ ์ด ๊ฐ๋ฅ. ์ํ๋ ๋ฒ์์ ์ด๋ ์ด๋ฅผ ๋ง๋ค ์ ์๋ค. ํํ์ ์ฐจ์์ ์ํ๋ ๋๋ก ์ค์ ํ๊ณ ์ถ์ผ๋ฉด .reshape()๋ฅผ ์ฐ์.
.shape : ์ด๋ค ์ด๋ ์ด ๋ค์ ์ด๊ฑธ ๋ถ์ด๋ฉด ๊ทธ ์ด๋ ์ด์ ํ์์ ์ถ๋ ฅํ๋ค.
.size : ์ฐจ์ ์ ๋ณด๋ ์์ด ์์์ ๊ฐ์๋ง์ ์ถ๋ ฅํ๋ค.
.argmax() ์ ๋ ฅ ๊ฐ์ผ๋ก ๋ค์ด์จ ๋งคํธ๋ฆญ์ค์ ๊ฐ ํ/์ด๋ณ ์ต๋๊ฐ์ ์ธ๋ฑ์ค๋ฅผ ์ฐ์ถํ๋ค. Axis = ๋ฅผ ์ถ๊ฐํ๋ฉด ์ด๋ณ(0) ํน์ ํ๋ณ(1) ์ต๋๊ฐ ์์น๋ฅผ ์ ์ ์๋ค. ๋น์ทํ๊ฒ .argmin() ๋ ์กด์ฌํ๋ค.
.T : ๋ฐฑํฐ์ ์ ์น(transpose)๋ฅผ ์ํํ๋ค. ๋จ 1์ฐจ์ ์ด๋ ์ด๋ ์ํฉ์ ๋ฐ๋ผ ํ๋ฐฑํฐ ํน์ ์ด๋ฐฑํฐ๋ก ๋ฐ๋๋ฏ๋ก ๊ตณ์ด T๋ฅผ ๋ถ์ผ ์ด์ ๋ ์๋ค.
.linspace(์์๊ฐ, ์ข ๋ฃ๊ฐ, ๊ฐ๊ฒฉ ์) : ์์๊ฐ๊ณผ ์ข ๋ฃ๊ฐ ์ฌ์ด์ ์ผ์ ํ ๊ฐ๊ฒฉ์ผ๋ก ๊ฐ๊ฒฉ ์ ๋งํผ์ ์ฌ์ด์ฆ์ array์ ์์ฑํด์ค๋ค. ์๋ฅผ ๋ค์ด ์ด๋ค ๋ฏธ๋ถ๋ฐฉ์ ์์ t = 0 ์์ t = 20 ์ผ๋ก 60fps์ฉ ํ๊ณ ์ถ๋ค๋ฉด,
timespan = np.linspace(0, 20, 1200) ํ๋ฉด ์์ฑํ ์ ์๋ค. ๊ทธ ๋ค์ scipy.integrate.odeint ๊ฐ์๊ฑฐ์๋ค๊ฐ ํด๋น array์ ๋ฏธ๋ถ๋ฐฉ์ ์์ ์ง์ด๋ฃ์ผ๋ฉด, ์์นํด์์ ์ด์ฉํ์ฌ ๊ฐ ์ง์ ๋ง๋ค ํด๋นํ๋ ๊ฐ์ ๋ฐํํ๋ค.
.arange(): ํํ ์ฐ์ด๋ range ํจ์์ ์ ์ฌํ๋ค. ๋ฒ์์ ๊ฐ๊ฒฉ ์ค์ ์ด ๊ฐ๋ฅ. ์ํ๋ ๋ฒ์์ ์ด๋ ์ด๋ฅผ ๋ง๋ค ์ ์๋ค. ํํ์ ์ฐจ์์ ์ํ๋ ๋๋ก ์ค์ ํ๊ณ ์ถ์ผ๋ฉด .reshape()๋ฅผ ์ฐ์.
.shape : ์ด๋ค ์ด๋ ์ด ๋ค์ ์ด๊ฑธ ๋ถ์ด๋ฉด ๊ทธ ์ด๋ ์ด์ ํ์์ ์ถ๋ ฅํ๋ค.
.size : ์ฐจ์ ์ ๋ณด๋ ์์ด ์์์ ๊ฐ์๋ง์ ์ถ๋ ฅํ๋ค.
.argmax() ์ ๋ ฅ ๊ฐ์ผ๋ก ๋ค์ด์จ ๋งคํธ๋ฆญ์ค์ ๊ฐ ํ/์ด๋ณ ์ต๋๊ฐ์ ์ธ๋ฑ์ค๋ฅผ ์ฐ์ถํ๋ค. Axis = ๋ฅผ ์ถ๊ฐํ๋ฉด ์ด๋ณ(0) ํน์ ํ๋ณ(1) ์ต๋๊ฐ ์์น๋ฅผ ์ ์ ์๋ค. ๋น์ทํ๊ฒ .argmin() ๋ ์กด์ฌํ๋ค.
.T : ๋ฐฑํฐ์ ์ ์น(transpose)๋ฅผ ์ํํ๋ค. ๋จ 1์ฐจ์ ์ด๋ ์ด๋ ์ํฉ์ ๋ฐ๋ผ ํ๋ฐฑํฐ ํน์ ์ด๋ฐฑํฐ๋ก ๋ฐ๋๋ฏ๋ก ๊ตณ์ด T๋ฅผ ๋ถ์ผ ์ด์ ๋ ์๋ค.
.linspace(์์๊ฐ, ์ข ๋ฃ๊ฐ, ๊ฐ๊ฒฉ ์) : ์์๊ฐ๊ณผ ์ข ๋ฃ๊ฐ ์ฌ์ด์ ์ผ์ ํ ๊ฐ๊ฒฉ์ผ๋ก ๊ฐ๊ฒฉ ์ ๋งํผ์ ์ฌ์ด์ฆ์ array์ ์์ฑํด์ค๋ค. ์๋ฅผ ๋ค์ด ์ด๋ค ๋ฏธ๋ถ๋ฐฉ์ ์์ t = 0 ์์ t = 20 ์ผ๋ก 60fps์ฉ ํ๊ณ ์ถ๋ค๋ฉด,
timespan = np.linspace(0, 20, 1200) ํ๋ฉด ์์ฑํ ์ ์๋ค. ๊ทธ ๋ค์ scipy.integrate.odeint ๊ฐ์๊ฑฐ์๋ค๊ฐ ํด๋น array์ ๋ฏธ๋ถ๋ฐฉ์ ์์ ์ง์ด๋ฃ์ผ๋ฉด, ์์นํด์์ ์ด์ฉํ์ฌ ๊ฐ ์ง์ ๋ง๋ค ํด๋นํ๋ ๊ฐ์ ๋ฐํํ๋ค.
.unique : ํด๋น ์ด๋ ์ด์ ์ด๋ค ๊ฐ๋ค์ด ์๋์ง ์๋ ค์ค๋ค. ์๋ฅผ ๋ค์ด np.unique([1, 2, 2, 3, 5, 5])๋ผ๋ฉด, output์ผ๋ก๋ [1, 2, 3, 5] ๊ฐ ์ถ๋ ฅ๋๋ค.
.reshape : ndarray๋ฅผ ์ํ๋ ์ฐจ์/์ฌ์ด์ฆ๋ก ๋ณ๊ฒฝํด์ค๋ค. ์๋ฅผ ๋ค์๋ฉด, ๋ฅ ๋ฌ๋์์ CNN (Convolutional Neural Network) ๋ ๋ณดํต ๋ฐฐ์น ์ฌ์ด์ฆ * ๊ฐ๋ก * ์ธ๋ก * ์๊น ์๋ก 4D array ๊ตฌ์กฐ์ธ๋ฐ, ์ด๋ฅผ ๋์ค์ evaluation ๋ฑ์์ ํ์ฉํ๊ธฐ ์ํด .flatten์ด๋ .reshapeํ์ฌ 1์ฐจ์ array๋ก ํผ์น ์ ์๋ค.
.sin, cos, tan : ์ผ๊ฐํจ์๋ค. ์ ๋ ฅ๊ฐ์ผ๋ก ๋ผ๋์์ ์ฌ์ฉํ๋ ์ฃผ์ํ๋๋ก.
np.sort : array๋ฅผ ์ ๋ ฅํ ์ถ์ ๋ฐ๋ผ ์ ๋ ฌํด ์ค๋ค. ์ ํ์ผ๋ก ์ ๋ ฌ ๋ฐฉ์์ ์ง์ ์ง์ ํ ์ ์๋ค.
.reshape : ndarray๋ฅผ ์ํ๋ ์ฐจ์/์ฌ์ด์ฆ๋ก ๋ณ๊ฒฝํด์ค๋ค. ์๋ฅผ ๋ค์๋ฉด, ๋ฅ ๋ฌ๋์์ CNN (Convolutional Neural Network) ๋ ๋ณดํต ๋ฐฐ์น ์ฌ์ด์ฆ * ๊ฐ๋ก * ์ธ๋ก * ์๊น ์๋ก 4D array ๊ตฌ์กฐ์ธ๋ฐ, ์ด๋ฅผ ๋์ค์ evaluation ๋ฑ์์ ํ์ฉํ๊ธฐ ์ํด .flatten์ด๋ .reshapeํ์ฌ 1์ฐจ์ array๋ก ํผ์น ์ ์๋ค.
.sin, cos, tan : ์ผ๊ฐํจ์๋ค. ์ ๋ ฅ๊ฐ์ผ๋ก ๋ผ๋์์ ์ฌ์ฉํ๋ ์ฃผ์ํ๋๋ก.
np.sort : array๋ฅผ ์ ๋ ฅํ ์ถ์ ๋ฐ๋ผ ์ ๋ ฌํด ์ค๋ค. ์ ํ์ผ๋ก ์ ๋ ฌ ๋ฐฉ์์ ์ง์ ์ง์ ํ ์ ์๋ค.
[1] ํฌํธ๋์ ์๋๋
ผ๋ ํญ๋ชฉ์ ์ฐธ์กฐํ๋ผ.