[파이썬][Scipy] 데이터 보간과 스플라인 근사 예제
Scipy의 scipy.interpolate
모듈을 사용하여 데이터 보간 및 스플라인 근사를 수행할 수 있습니다. 아래는 데이터 보간과 스플라인 근사의 예제입니다.
-
선형 데이터 보간 예제:
주어진 데이터 포인트를 사용하여 선형 데이터 보간을 수행하는 예제입니다.
from scipy.interpolate import interp1d
import numpy as np
import matplotlib.pyplot as plt
# 원본 데이터 포인트
x = np.array([0, 1, 2, 3, 4])
y = np.array([0, 1, 4, 9, 16])
# 선형 데이터 보간 함수 생성
linear_interp = interp1d(x, y, kind='linear')
# 새로운 x 값에 대한 y 예측
x_new = np.array([0.5, 1.5, 2.5, 3.5])
y_interp = linear_interp(x_new)
# 결과 시각화
plt.scatter(x, y, label='원본 데이터')
plt.plot(x_new, y_interp, label='선형 보간', linestyle='--')
plt.legend()
plt.show()
-
스플라인 근사 예제:
주어진 데이터 포인트를 사용하여 스플라인 근사를 수행하는 예제입니다.
from scipy.interpolate import CubicSpline
import numpy as np
import matplotlib.pyplot as plt
# 원본 데이터 포인트
x = np.array([0, 1, 2, 3, 4])
y = np.array([0, 1, 4, 9, 16])
# 스플라인 근사 함수 생성
cubic_spline = CubicSpline(x, y)
# 새로운 x 값에 대한 y 예측
x_new = np.linspace(0, 4, 100) # 새로운 x 값 범위
y_interp = cubic_spline(x_new)
# 결과 시각화
plt.scatter(x, y, label='원본 데이터')
plt.plot(x_new, y_interp, label='스플라인 근사', linestyle='--')
plt.legend()
plt.show()
이러한 예제를 사용하여 데이터 보간 및 스플라인 근사를 수행하는 방법을 이해할 수 있습니다. Scipy의 scipy.interpolate
모듈은 다양한 보간 및 근사 기법을 제공하며, 주어진 데이터를 더 부드럽게 또는 정확하게 표현하기 위해 사용됩니다.