numpy란?
과학 컴퓨팅을 위한 라이브러리로서, 다차원 배열과 수치 데이터를 효율적으로 처리할 수 있는 도구를 제공한다. 실세계에서 수집된 복잡한 데이터를 다루는 데 유용하며, 데이터 분석, 머신 러닝과 같은 다양한 분야에 사용된다.
numpy.ndarray
numpy.ndarray는 파이썬의 list 자료형과 비슷한 것이라고 생각하면 되며, 수학적 연산에 최적화된 고성능의 배열이다. 파이썬의 리스트처럼 여러 데이터를 한 번에 담아 표현할 수 있으며, 행렬, 벡터 관련 연산에 유용하게 쓸 수 있다. 아래는 각각 파이썬의 list, numpy.ndarray를 이용하여 5이하 자연수를 얻는 방법이다.
>>>alist = [1,2,3,4,5]
>>>print(type(alist))
<class 'list'>>>>a_array = np.array([1,2,3,4,5])
>>>print(type(a_array))
<class 'numpy.ndarray'>numpy.polyfit()
numpy.polyfit() 함수는 x값 데이터들과 y값 데이터들을 numpy 배열로 전달받아 순서쌍 (x,y)로 표현되는 점들을 가장 가까이 지나는(근사하는) 다항함수의 계수를 리스트로 반환해주는 함수이다. 흔히 피팅 함수라고도 한다. 용법은 아래와 같다.
numpy.polyfit( x, y, deg ) # x : x값 배열, y: y값 배열, deg:차수numpy.polyfit()을 이용하여, 점
(1,3), (2,4), (3,7), (4,20)
을 가장 가깝게 지나는 삼차함수 f(x)를 구하자.
import numpy
x_array = [1,2,3,4]
y_array = [3,4,7,20]
coefficients = numpy.polyfit(x_array, y_array)이렇게만 하면 삼차함수의 계수 리스트밖에 못 얻으므로 삼차함수 식을 완성하려면 1강에서 배웠던 sympy를 이용해야 한다.
import sympy
import numpy
x_array = [1,2,3,4]
y_array = [3,4,7,20]
coefficients = numpy.polyfit(x_array, y_array)
c = coefficients
#x를 변수로 설정
x = sympy.symbols('x')
# 식 f(x)구성
func += c[0]*x**3 + c[1]*x**2 + +c[2]*x + c[3]
#f(x) 그래프 출력
sympy.plot(func, (x, -2, float(max(x_array))+2)네 점의 산점도와 함께 f(x)의 그래프를 출력하면 아래와 같다.

이처럼 numpy를 이용하면 주어진 데이터를 근사하는 삼차함수를 얻을 수 있다. 삼차함수 뿐 아니라 다양한 다항함수, 초월함수가 가능하다.
이를 이용하면 아래와 같이 실생활의 다양한 데이터를 근사하는 함수 식을 얻어 수학 수업에 활용할 수 있다.


댓글 남기기