मुझे आश्चर्य है कि यह विशिष्ट प्रश्न पहले नहीं पूछा गया है, लेकिन मैं वास्तव में एसओ पर नहीं मिला और न ही इसके प्रलेखन पर np.sort
।
मान लें कि मेरे पास एक यादृच्छिक संख्या में पूर्णांक वाले सरणी हैं, जैसे:
> 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])
लेकिन मैं चाहता हूं कि समाधान को अवरोही क्रम में हल किया जाए।
अब, मुझे पता है कि मैं हमेशा कर सकता हूं:
reverse_order = np.sort(temp)[::-1]
लेकिन क्या यह अंतिम कथन कुशल है ? क्या यह आरोही क्रम में एक प्रति नहीं बनाता है, और फिर उलटी क्रम में परिणाम प्राप्त करने के लिए इस प्रति को उलट देता है? यदि यह वास्तव में मामला है, तो क्या एक कुशल विकल्प है? यह np.sort
रिवर्स ऑर्डर में चीजों को प्राप्त करने के लिए सॉर्ट ऑपरेशन में तुलना के संकेत को बदलने के लिए मापदंडों को स्वीकार नहीं करता है ।
temp[::-1].sort()
पता चलता है कि इसे रिवर्स ऑर्डर में सॉर्ट करना है ?? जिस तरह से मैंने इसे पढ़ा है: मूल सरणी को उल्टा करें, और फिर इसे क्रमबद्ध करें (आरोही क्रम में)। मूल सरणी (एक यादृच्छिक क्रम में आने) को उलटने और फिर आरोही क्रम में छाँटने से सरणी को उलट क्रम में वापस क्यों आएगा?