एक सरणी को resample करना आसान है जैसे
a = numpy.array ([1, 2,3,4,5,6,7,8,9,10])
एक पूर्णांक resampling कारक के साथ उदाहरण के लिए, एक कारक 2 के साथ:
b = a [:: 2] # [1 3 5 7 9]
लेकिन एक गैर- पूर्णांक resampling कारक, यह इतनी आसानी से काम नहीं करता है:
c = a [:: 1.5] # [1 2 3 4 5 6 7 8 9 10] = & gt; इसकी आवश्यकता नहीं है ...
यह (रैखिक प्रक्षेप के साथ) होना चाहिए:
[1 2.5 4 5.5 7 8.5 10]
या (सरणी में निकटतम पड़ोसी लेने के द्वारा)
[1 3 4 6 7 9 10]
एक गैर-पूर्णांक रीसंपलिंग कारक के साथ एक numpy array को कैसे रेस्पल कर सकता है?
NumPy जो रैखिक प्रक्षेप करता है:
में [1]: numpy.interp (एनपी .रेंज (0, लेन (ए), 1.5), एनपी .रेंज (0, लेन (ए)), ए) आउट [1]: सरणी ([1., 2.5, 4., 5.5, 7., 8.5, 10.])
SciPy में जो रैखिक और निकटतम प्रक्षेप कर सकता है ( हालांकि, जो बिंदु निकटतम नहीं है, वह स्पष्ट नहीं है):
में [2]: से scipy.interpolate आयात interp1d में [3]: xp = np.arange (0, लेन (ए), 1.5) में [4]: lin = interp1d (np.arange (len (a)), a) में [5]: lin (xp) आउट [5]: सरणी ([1., 2.5, 4., 5.5, 7., 8.5, 10.]) में [6]: निकटतम = interp1d (एनपी .रेंज (लेन (ए)), ए, प्रकार = 'निकटतम') में [7]: निकटतम (एक्सपी) आउट [7]: सरणी ([1., 2., 4., 5., 7., 8., 10.])
No comments:
Post a Comment