मेरे पास प्रशिक्षण मूल्यों का नियमित ग्रिड है (वेक्टर एक्स और वाई संबंधित ग्रिड xmesh और ymesh और zmesh के ज्ञात मानों के साथ) लेकिन एक बिखरे हुए/ragged/मूल्यों के अनियमित समूह को अलग करने के लिए (वेक्टर xI और yI, जहां हम zI [0] = f (xI [0], yI [0]) में रूचि रखते हैं ... zI [N-1] = f (xI [N -1], वाईआई [एन -1])। इस इंटरपोलेशन को अनुकूलन समस्या के हिस्से के रूप में लाखों बार बुलाया जाएगा, इसलिए ग्रिड बनाने और ट्रेस लेने वाली विधि का उपयोग करने के लिए प्रदर्शन बहुत महत्वपूर्ण है।साइप्पी के साथ पाइथन में फास्ट 2-डी इंटरपोलेशन बिखरी/अनियमित मूल्यांकन के लिए नियमित ग्रिड
अब तक, मैं एक scipy.interpolate फ़ंक्शन ढूंढने में सक्षम हूं जो बीपीएफ फ़ंक्शन के करीब आता है। हालांकि, क्योंकि यह एक बिखरे हुए इनपुट की कहानियां करता है, मुझे लगता है कि इसमें अच्छा प्रदर्शन नहीं है और मैं ' डी ली इसे स्पलीन, रैखिक, और निकटतम पड़ोसी इंटरपोलेशन विधियों के खिलाफ परीक्षण करने के लिए मैं बेहतर समझता हूं और मुझे उम्मीद है कि यह तेज़ होगा। इन सभी तरीकों को लागू करने वाले सभी तरीकों से मुझे पता चल सकता है कि प्रशिक्षण डेटा के रूप में नियमित ग्रिड लेते हैं (जैसे RectBivariateSpline) को मूल्यों के लिए नियमित ग्रिड की आवश्यकता होती है।
यह कोड उम्मीद करेगा कि मैं जो पूछ रहा हूं उसे स्पष्ट कर दूंगा।
import numpy as np
import scipy as sp
import scipy.interpolate as interp
x = np.arange(0,2*np.pi,.1)
y = x
xmesh,ymesh = np.meshgrid(x,y)
zmesh = np.sin(xmesh)+np.cos(ymesh)
rbf = interp.Rbf(xmesh, ymesh, zmesh, epsilon=2)
xI = np.arange(0,np.pi,.05)
yI = xI
XI, YI = np.meshgrid(xI,yI)
# Notice how this is happy to take a vector or grid as input
zI = rbf(xI, yI)
ZI = rbf(XI,YI) # equiv. to zImesh
myspline = interp.RectBivariateSpline(x, y, zmesh)
# myspline takes vectors as input but makes them into meshes for evaluation
splineoutput = myspline(xI, yI)
# myspline returns ZI but I want zI
print(splineoutput)
print(ZI)
print(zI)
वहाँ कुछ मैं लेकिन जि (वेक्टर) प्राप्त करने के लिए RectBivariateSpline की तरह एक समारोह का उपयोग करने के लिए कर सकते हैं जि (जाल) के बजाय है? या वैकल्पिक रूप से, क्या फ़ंक्शन का एक और परिवार है जो वैकल्पिक अनुकूलन विधियों पर जिस तरह से काम करता है, और यदि ऐसा है, तो मुझे क्या देखना चाहिए?
बस एक त्वरित अनुस्मारक जो मैं खोज रहा हूं वह ग्रिड पॉइंट्स के बीच छोटी दूरी के साथ अपेक्षाकृत बड़े सरणी (20,000+ प्रविष्टियों) के साथ एक तेज़ अनुकूलन तकनीक है, और जहां डेटा बहुत चिकनी है। मुझे संदेह है कि मौजूदा पुस्तकालयों के साथ मुझे जो कुछ चाहिए, उसे करने के लिए एक अच्छा, सरल, तरीका है लेकिन मुझे यह नहीं मिल रहा है। सहायता के लिए धनयवाद।
मैं वास्तव में क्या चाहते थे प्रतीत होता है कि। मुझे पता था कि मदद करने के लिए कुछ बनाया गया था। धन्यवाद! – BKay
एन-आयामी मामले के लिए यह उत्तर भी देखें: http://stackoverflow.com/questions/16983843/fast-interpolation-of-grid-data – j13r