पायथन में रैखिक इंटरपोलेशन कैसे करें (उदाहरण के साथ)
रैखिक प्रक्षेप दो ज्ञात मानों के बीच किसी फ़ंक्शन के अज्ञात मान का अनुमान लगाने की प्रक्रिया है।
दो ज्ञात मानों (x 1 , y 1 ) और (x 2 , y 2 ) को देखते हुए, हम निम्नलिखित सूत्र का उपयोग करके एक बिंदु x के लिए y मान का अनुमान लगा सकते हैं:
y = y 1 + (xx 1 )(y 2 -y 1 )/(x 2 -x 1 )
हम पायथन में रैखिक इंटरपोलेशन करने के लिए निम्नलिखित मूल वाक्यविन्यास का उपयोग कर सकते हैं:
import scipy. interpolate y_interp = scipy. interpolate . interp1d (x,y) #find y-value associated with x-value of 13 print (y_interp( 13 ))
निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस वाक्यविन्यास का उपयोग कैसे करें।
उदाहरण: पायथन में रैखिक प्रक्षेप
मान लीजिए कि हमारे पास पायथन में मूल्यों की निम्नलिखित दो सूचियाँ हैं:
x = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20] y = [4, 7, 11, 16, 22, 29, 38, 49, 63, 80]
हम एक त्वरित x बनाम y प्लॉट बना सकते हैं:
import matplotlib. pyplot as plt
#create plot of x vs. y
plt. plot (x, y, ' -ob ')
अब मान लीजिए कि हम 13 के नए x मान से संबद्ध y मान ज्ञात करना चाहते हैं।
ऐसा करने के लिए हम निम्नलिखित कोड का उपयोग कर सकते हैं:
import scipy. interpolate
y_interp = scipy. interpolate . interp1d (x,y)
#find y-value associated with x-value of 13
print (y_interp( 13 ))
33.5
अनुमानित y मान 33.5 निकला।
यदि हम अपने कथानक में बिंदु (13, 33.5) जोड़ते हैं, तो यह फ़ंक्शन से काफी मेल खाता हुआ प्रतीत होता है:
import matplotlib. pyplot as plt
#create plot of x vs. y
plt. plot (x, y, ' -ob ')
#add estimated y-value to plot
plt. plot (13, 33.5, ' ro ')
हम किसी भी नए x मान के लिए रैखिक प्रक्षेप करने के लिए इस सटीक सूत्र का उपयोग कर सकते हैं।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि पायथन में अन्य सामान्य त्रुटियों को कैसे ठीक किया जाए:
पंडों में KeyError को कैसे ठीक करें
कैसे ठीक करें: वैल्यूएरर: फ्लोट NaN को int में बदलने में असमर्थ
कैसे ठीक करें: वैल्यूएरर: ऑपरेंड को आकृतियों के साथ प्रसारित नहीं किया जा सका