मुझे आश्चर्य है कि इस विशिष्ट प्रश्न से पहले नहीं पूछा गया है, लेकिन मुझे वास्तव में यह SO12 और np.sort
के दस्तावेज़ पर नहीं मिला। डिफ़ॉल्ट रूप सेअवरोही क्रम में एक numpy सरणी कुशलतापूर्वक सॉर्टिंग?
> temp = np.random.randint(1,10, 10)
> temp
array([2, 4, 7, 4, 2, 2, 7, 6, 4, 4])
अगर मैं यह सॉर्ट, मैं आरोही मिल आदेश:
> np.sort(temp)
array([2, 2, 2, 4, 4, 4, 4, 6, 7, 7])
लेकिन मैं समाधान क्रमबद्ध करना चाहते
मैं एक यादृच्छिक numpy सरणी पकड़े पूर्णांकों, जैसे है कहो में आदेश अवरोही।
अब, मैं जानता हूँ कि मैं हमेशा कर सकते हैं:
reverse_order = np.sort(temp)[::-1]
लेकिन यह पिछले बयान कुशल है? क्या यह आरोही क्रम में एक प्रतिलिपि नहीं बनाता है, और फिर परिणाम को उलटा क्रम में प्राप्त करने के लिए इस प्रति को उलट देता है? यदि यह वास्तव में मामला है, तो क्या कोई कुशल विकल्प है? ऐसा लगता है कि np.sort
विपरीत क्रम में चीजों को प्राप्त करने के लिए सॉर्ट ऑपरेशन में तुलना के संकेत को बदलने के लिए मानकों को स्वीकार करता है।
धन्यवाद, लेकिन 'temp [:: - 1] .sort()' कैसे पता चलता है कि इसे रिवर्स ऑर्डर में सॉर्ट करना है ?? जिस तरह से मैंने इसे पढ़ा है वह है: मूल सरणी को उलट दें, और उसके बाद इसे क्रमबद्ध करें (आरोही क्रम में)। मूल सरणी (एक यादृच्छिक क्रम में आने) को फिर से क्यों घुमाएगा और फिर इसे आरोही क्रम में क्रमबद्ध करने से सरणी को रिवर्सिंग ऑर्डर में वापस कर दिया जाएगा? –
क्या यह व्यवहार दस्तावेज है, क्योंकि यह बहुत ही अनूठा है। – ebarr
मैंने देखा नहीं है लेकिन '[:: - 1]' अक्सर 'Argsort' –