본문으로 건너뛰기

SciPy를 사용하여 데이터 보간하는 방법

다음은 SciPy를 사용하여 데이터를 보간하는 단계별 튜토리얼입니다:

단계 1: 필요한 라이브러리 가져오기

먼저 필요한 라이브러리를 가져와야합니다: NumPy와 SciPy입니다. NumPy는 수치 연산에 사용되며, SciPy는 보간 함수를 제공합니다.

import numpy as np
from scipy.interpolate import interp1d

단계 2: 데이터 준비

다음으로 보간하려는 데이터를 준비해야합니다. 이를 위해 x값에 대한 배열과 해당하는 y값에 대한 배열을 생성해야합니다.

x = np.array([1, 2, 3, 4, 5])  # x값
y = np.array([2, 4, 1, 6, 8]) # y값

단계 3: 보간 방법 선택

SciPy에는 다양한 보간 방법이 있습니다. 가장 일반적인 방법으로는 선형, 다항식 및 스플라인 보간이 있습니다. 데이터와 요구 사항에 맞는 방법을 선택하십시오.

이 튜토리얼에서는 선형 보간을 사용합니다. 선형 보간은 두 데이터 포인트 사이에 직선을 가정합니다.

단계 4: 보간 함수 생성

보간을 수행하려면, SciPy의 interp1d 함수를 사용하여 보간 함수를 생성해야합니다. 선택한 보간 방법과 함께 x와 y 배열을 전달하여 함수를 생성합니다.

f = interp1d(x, y, kind='linear')

단계 5: 새로운 값을 보간

이제 보간 함수가 있으므로, 새로운 x값에 대한 보간된 y값을 계산하기 위해 사용할 수 있습니다. 보간 함수에 원하는 x값을 전달하면, 해당하는 보간된 y값을 반환합니다.

x_new = np.array([1.5, 2.5, 3.5])  # 새로운 x값
y_new = f(x_new) # 보간된 y값

단계 6: 결과 시각화

보간 결과를 시각화하기 위해 Matplotlib를 사용하여 원래 데이터 포인트와 보간된 값들을 플롯할 수 있습니다.

import matplotlib.pyplot as plt

plt.plot(x, y, 'o', label='원본 데이터')
plt.plot(x_new, y_new, 'x', label='보간된 데이터')
plt.legend()
plt.show()

그리고 이것으로 SciPy를 사용하여 데이터를 성공적으로 보간했습니다.

다음은 완전한 코드입니다:

import numpy as np
from scipy.interpolate import interp1d
import matplotlib.pyplot as plt

x = np.array([1, 2, 3, 4, 5]) # x값
y = np.array([2, 4, 1, 6, 8]) # y값

f = interp1d(x, y, kind='linear')

x_new = np.array([1.5, 2.5, 3.5]) # 새로운 x값
y_new = f(x_new) # 보간된 y값

plt.plot(x, y, 'o', label='원본 데이터')
plt.plot(x_new, y_new, 'x', label='보간된 데이터')
plt.legend()
plt.show()

특정 요구 사항에 따라 코드를 수정하고 다양한 보간 방법을 실험해보세요.