์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.
NumPy
๋„˜ํŒŒ์ด
๋ฒ„์ „
1.19.0
2020๋…„ 9์›” 20์ผ ์—…๋ฐ์ดํŠธ
์›น์‚ฌ์ดํŠธ
Python์ด ๋Œ€๊ทœ๋ชจ ์ˆ˜ํ•™ ์—ฐ์‚ฐ์„ ํ•„์š”๋กœ ํ•˜๋Š” ๊ฒฝ์šฐ ๋А๋ ค์„œ ๋ชป์จ๋จน๊ฒ ๋‹ค๊ณ ?
์ฐจ๋ผ๋ฆฌ ์ข€ ํ”„๋กœ๊ทธ๋žจ ์งœ๋Š”๊ฒŒ ํž˜๋“ค์–ด๋„ ์†๋„ ๋•Œ๋ฌธ์— ๊ทธ๋ƒฅ C์–ธ์–ด๋กœ ์งœ๊ฒ ๋‹ค๊ณ ?

๊ทธ๋Ÿฌ์ง€ ๋งˆ. NumPy๊ฐ€ ์žˆ์œผ๋‹ˆ๊นŒ!

1. ๊ฐœ์š”2. ๋‹ค๋ฅธ Python ํŒจํ‚ค์ง€์™€์˜ ๊ด€๊ณ„3. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ํฌํ•จ๋œ ํ•จ์ˆ˜


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

2. ๋‹ค๋ฅธ Python ํŒจํ‚ค์ง€์™€์˜ ๊ด€๊ณ„[ํŽธ์ง‘]

  • Scipy
Numpy์™€ Scipy๋Š” ์„œ๋กœ ๋–จ์–ด์งˆ ์ˆ˜ ์—†์„ ์ •๋„๋กœ ๋ฐ€์ ‘ํ•œ ๊ด€๊ณ„์— ์žˆ์œผ๋ฉฐ Scipy๋ฅผ ํ™œ์šฉํ•  ๋•Œ์—๋Š” ์ƒ๋‹นํžˆ ๋งŽ์ด Numpy๋ฅผ ์ด์šฉํ•˜๊ฒŒ ๋œ๋‹ค. ์‹ค์ œ๋กœ Scipy์— ๊ด€ํ•œ ์ฑ…์„ ๊ตฌ๋งคํ–ˆ์„ ๋•Œ ์ฑ…์˜ ์•ž๋ถ€๋ถ„์€ Scipy ๊ด€๋ จ ๋‚ด์šฉ๋ณด๋‹ค๋Š” ์˜คํžˆ๋ ค Numpy์˜ ๊ธฐ์ดˆ์— ๋Œ€ํ•œ ๋‚ด์šฉ ์œ„์ฃผ๋กœ ๋ณด๊ฒŒ ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

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์„ ์จ์„œ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆด ์ˆ˜ ์žˆ๋‹ค.

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์™€ ๋ฏธ๋ถ„๋ฐฉ์ •์‹์„ ์ง‘์–ด๋„ฃ์œผ๋ฉด, ์ˆ˜์น˜ํ•ด์„์„ ์ด์šฉํ•˜์—ฌ ๊ฐ ์ง€์ ๋งˆ๋‹ค ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
.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๋ฅผ ์ž…๋ ฅํ•œ ์ถ•์— ๋”ฐ๋ผ ์ •๋ ฌํ•ด ์ค€๋‹ค. ์„ ํƒ์œผ๋กœ ์ •๋ ฌ ๋ฐฉ์‹์„ ์ง์ ‘ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
[1] ํฌํŠธ๋ž€์˜ ์†๋„๋…ผ๋ž€ ํ•ญ๋ชฉ์„ ์ฐธ์กฐํ•˜๋ผ.