Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python – scipy.interpolate.interp1d

ฟังก์ชัน interp1d() ของแพ็กเกจ scipy.interpolate ใช้สำหรับ interpolate ฟังก์ชัน 1 มิติ รับอาร์เรย์ค่า x และ y เพื่อประมาณฟังก์ชัน y = f(x) จากนั้นใช้ interpolation หาค่าใหม่

Syntax

scipy.interpolate.interp1d(x, y)

ที่ x คืออาร์เรย์ 1 มิติค่าจริง y คืออาร์เรย์ N มิติค่าจริง ความยาวของ y ตามแกน interpolation ต้องเท่าความยาวของ x

ตัวอย่าง 1

พิจารณาตัวอย่างต่อไปนี้:

# นำเข้าไลบรารีที่จำเป็น
import matplotlib.pyplot as plt
import numpy as np
from scipy import interpolate
# ตั้งค่าขนาดรูป
plt.rcParams["figure.figsize"]=[7.00, 3.50]
plt.rcParams["figure.autolayout"]=True
# กำหนดค่า
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()

ผลลัพธ์

โปรแกรมจะสร้างกราฟสองกราฟ ข้างซ้ายข้อมูลต้นฉบับ ข้างขวาข้อมูล interpolated

Python – scipy.interpolate.interp1d

ตัวอย่าง 2

ตัวอย่างเพิ่มเติม:

# นำเข้าไลบรารีที่จำเป็น
import matplotlib.pyplot as plt
import numpy as np
from scipy import interpolate
# ตั้งค่าขนาดรูป
plt.rcParams["figure.figsize"]=[7.00, 3.50]
plt.rcparams["figure.autolayout"]=True
# กำหนดค่า
x = np.arange(0, 10)
y = np.exp(-x **2/9.0)
# interpolation function
f = interpolate.interp1d(x, y)
xnew = np.arange(0, 9, 1.2)
plt.plot(x, y, 'o', xnew)
plt.show()

ผลลัพธ์

จะแสดงจุดข้อมูลต้นฉบับ (วงกลม) และจุด interpolated (ค่า xnew)

Python – scipy.interpolate.interp1d