python - Array slicing: access first two elements in reverse order running for loop -


मान लीजिए मेरे पास 1D की लंबाई 10 है:

  ए = एनपी.रेंज (10 )  

मैं एक समय में 2 तत्वों का उपयोग करना चाहता हूं और उन्हें उलटा देना चाहता हूं। इसके बाद ए यह दिखाई देगा:

  np.array ([1,0,3,2,5,4,7,6,9,8])   

मैं इसे लूप के लिए कर रहा हूं:

  में श्रेणी के लिए (5): ए [2 * i: 2 * i + 2] = ए [2 * i + 1 : 2 * i-1: -1]  

यह समाधान I! = 0 के लिए काम करता है। क्या मैं सभी तत्वों के लिए वांछित उत्पादन प्राप्त करना संभव है, बिना किसी विशेष मामले के लिए?

* मैं एक उदाहरण के रूप में 1 डी का इस्तेमाल किया। मेरी वास्तविक सरणी 2 डी है, y और x के रूप में पंक्तियों के रूप में निर्देशांक Cv2.fitEllipse और cv.drawContours को सरणी की आवश्यकता होती है जहां x और y कॉलम हैं ((2, एन) -> (एन, 1,2))। मुझे अपने सरणी के आकार को बदलना होगा और ऑर्डर रद्द करना होगा (और मैं इसे 1 संचालन में करना चाहता हूं)।

आप ऐसा कुछ कर सकते हैं:

  & gt; & gt; & gt; Arr = np.arange (10) & gt; & gt; & gt; Arr.reshape (arr.size / 2, 2) [:, :: - 1]। फ्लैटन () सरणी ([1, 0, 3, 2, 5, 4, 7, 6, 9, 8])   

इन-प्लेस संशोधनों के लिए:

  & gt; & gt; & gt; Arr = np.arange (10) & gt; & gt; & gt; Arr [:: 2], arr [1 :: 2] = arr [1 :: 2], arr [:: 2] .copy ()>> gt; & gt; & gt; एआर सरणी ([1, 0, 3, 2, 5, 4, 7, 6, 9, 8])  

कॉलिंग .copy () आवश्यक है क्योंकि जब तक पायथन arr [1 :: 2] पर arr पर वस्तुओं <[2 2] पर पहले से संशोधित हैं, पर पहुंच जाएगा।


Comments

Popular posts from this blog

python - Overriding the save method in Django ModelForm -

html - CSS autoheight, but fit content to height of div -

qt - How to prevent QAudioInput from automatically boosting the master volume to 100%? -