[파이썬][Scipy] 데이터 보간과 스플라인 근사 예제

Scipy의 scipy.interpolate 모듈을 사용하여 데이터 보간 및 스플라인 근사를 수행할 수 있습니다. 아래는 데이터 보간과 스플라인 근사의 예제입니다.

  1. 선형 데이터 보간 예제:

    주어진 데이터 포인트를 사용하여 선형 데이터 보간을 수행하는 예제입니다.

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()
  1. 스플라인 근사 예제:

    주어진 데이터 포인트를 사용하여 스플라인 근사를 수행하는 예제입니다.

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 모듈은 다양한 보간 및 근사 기법을 제공하며, 주어진 데이터를 더 부드럽게 또는 정확하게 표현하기 위해 사용됩니다.