Friday, 15 June 2012

python - Resample a numpy array -


एक सरणी को 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