2015-08-29 3 views
8

के बीच चयन करना मैं numpy.interp बनाम scipy.interpolate.interp1d (kind='linear' के साथ) के बीच चयन करने की कोशिश कर रहा हूं। मुझे एहसास है कि उनके पास अलग-अलग इंटरफेस हैं लेकिन इससे मेरे लिए कोई फर्क नहीं पड़ता है (मैं या तो इंटरफेस के आसपास कोड कर सकता हूं)। मैं सोच रहा हूं कि क्या अन्य मतभेद हैं जिनके बारे में मुझे अवगत होना चाहिए। धन्यवाद।numpy.interp बनाम scipy.interpolate.interp1d (kind = 'linear' के साथ)

+0

परिणाम समान होना चाहिए। आप दो तरीकों के [टाइम टेस्ट] (https://docs.python.org/2/library/timeit.html) की तुलना कर सकते हैं। – farenorth

+0

यह गारंटी है कि परिणाम x और y मानों के सभी इनपुट सरणी के लिए समान होंगे? – sotrue

+0

मैं कुछ भी गारंटी नहीं दे रहा हूं, और मशीन परिशुद्धता अंतर हो सकता है, लेकिन अन्यथा मुझे कोई कारण नहीं दिखता कि वे अलग-अलग परिणाम देंगे। – farenorth

उत्तर

4

जबकि numpy अलग डेटापॉइंट्स के साथ एक सरणी देता है, 'interp1d' एक फ़ंक्शन देता है। आप जितनी बार चाहें उतनी बार अपने कोड में जेनरेट किए गए फ़ंक्शन का उपयोग कर सकते हैं। इसके अलावा, आप अन्य तरीकों scipy.interp1d दोनों करता है, जबकि चुनते हैं, की तुलना में रैखिक interpoationn

+0

जैसा कि मेरे प्रश्न कथन में बताया गया है, मैं विभिन्न इंटरफेस के बारे में जानता हूं और मुझे दयालु = 'रैखिक' के अलावा अन्य तरीकों के बारे में पता है, लेकिन ये वे चीजें नहीं हैं जिनके बारे में मैं पूछ रहा हूं। – sotrue

12

Numpy.interp जटिल मान डेटा या ndim> 1 प्रबंधन नहीं करती है सकते हैं। ओटीओएच, numpy का इंटरपोलेटर much faster है (और अभी भी हाल ही में अधिक स्पष्ट संस्करण में तेजी से है)।

+0

हां, यह वह जानकारी है जिसे मैं ढूंढ रहा था। धन्यवाद! – sotrue

संबंधित मुद्दे