Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬 – scipy.interpolate.interp1d

<시간/>

interp1d() scipy.interpolate의 기능 패키지는 1차원 함수를 보간하는 데 사용됩니다. 어떤 함수 y =f(x)를 근사화하기 위해 x 및 y와 같은 값의 배열이 필요합니다. 그런 다음 보간을 사용하여 새 점의 값을 찾습니다.

구문

scipy.interpolate.interp1d(x, y)

여기서 x는 실수 값의 1차원 배열이고 y는 실수 값의 N차원 배열입니다. 보간 축을 따라 y의 길이는 x의 길이와 같아야 합니다.

예시 1

다음 예를 살펴보겠습니다. -

# Import the required libraries
import matplotlib.pyplot as plt
import numpy as np
from scipy import interpolate

# Set the figure size
plt.rcParams["figure.figsize"]=[7.00, 3.50]
plt.rcParams["figure.autolayout"]=True

# Define the values
x = np.arange(0, 10)
y = np.exp(-x/5.0)

# Input Data
plt.subplot(1,2,1)
plt.title("Input X and Y")
plt.plot(x,y)

# Interpolated Data
plt.subplot(1,2,2)
plt.title("Interpolated")
f = interpolate.interp1d(x, y)
x_new = np.arange(0, 7, 0.7)
y_new = f(x_new)
plt.plot(x_new, y_new, 's')

plt.show()

출력

위의 프로그램은 다음 출력을 생성합니다 -

파이썬 – scipy.interpolate.interp1d

예시 2

다른 예를 들어 보겠습니다 -

# Import the required libraries
import matplotlib.pyplot as plt
import numpy as np
from scipy import interpolate

# Set the figure size
plt.rcParams["figure.figsize"]=[7.00, 3.50]
plt.rcParams["figure.autolayout"]=True

# Define the values
x = np.arange(0, 10)
y = np.exp(-x **2/9.0)

# interpolate function
f = interpolate.interp1d(x, y)
xnew = np.arange(0, 9, 1.2)
plt.plot(x, y, 'o', xnew)

plt.show()

출력

위의 프로그램은 다음 출력을 생성합니다 -

파이썬 – scipy.interpolate.interp1d