तो numpy arrays में विकर्ण सूचकांक प्राप्त करने के लिए अंतर्निहित कार्य होता है, लेकिन मुझे लगता है कि शीर्ष बाएं की बजाय शीर्ष दाएं से शुरू होने वाले विकर्ण को कैसे प्राप्त किया जाए ।एक numpy सरणी के विपरीत विकर्ण
यह ऊपरी बाएँ से शुरू प्राप्त करने के लिए सामान्य कोड है:
>>> import numpy as np
>>> array = np.arange(25).reshape(5,5)
>>> diagonal = np.diag_indices(5)
>>> array
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19],
[20, 21, 22, 23, 24]])
>>> array[diagonal]
array([ 0, 6, 12, 18, 24])
तो क्या मैं का उपयोग करता है, तो मैं इसे वापस जाने के लिए चाहते हैं:
array([ 4, 8, 12, 16, 20])
आप समय बात करना शुरू कर दिया: 'कदम = लेन (सरणी) - 1; np.take (सरणी, np.arange (चरण, array.size, चरण)) ' – Jaime
@ जैम: यह बहुत अच्छा है - मेरे समाधान से बहुत तेज़ है। शायद हमें 'np.arange (step, array.size-1, step) 'की आवश्यकता है? कृपया इसे समाधान के रूप में पोस्ट करें ताकि मैं इसे वोट दे सकूं। – unutbu
मेरे पास टिम पीटर्स 'जेन ऑफ पायथन मेरे घन दीवार पर लटक रहा है, बस मेरे मॉनीटर से बाहर है। मैं टिप्पणी के कोड को उत्तर के रूप में पोस्ट नहीं कर सकता हूं जबकि ** पठनीयता की गणना ** मुझे देख रही है ...: पी 'फ्लिपलर' के साथ आपका समाधान शायद सबसे अच्छा है: पर्याप्त तेज़ और बहुत अधिक, जब आप इसे फिर से समझते हैं तो अधिक समझ में आता है इसे लिखने के कुछ महीने बाद। – Jaime