Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में a.sort, sorted(a), np.argsort(a) और np.lexsort(b, a)


डेटा तत्वों को एक विशिष्ट क्रम में व्यवस्थित करना एक बार-बार आवश्यक संक्रिया है। सरणी में तत्वों को सॉर्ट करने के लिए, पायथन sorted() और array.sort() नामक फ़ंक्शन का उपयोग करता है।

sorted(array)

यह फ़ंक्शन मूल सरणी को संशोधित किए बिना एक सॉर्ट की गई सरणी लौटाता है।

a = [9, 5, 3, 1, 12, 6]
b = sorted([9, 5, 3, 1, 12, 6])
print("सॉर्ट की गई सरणी:\n", b)
print("मूल सरणी:\n", a)

उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है:

सॉर्ट की गई सरणी: [1, 3, 5, 6, 9, 12]
मूल सरणी: [9, 5, 3, 1, 12, 6]

list.sort()

sort फ़ंक्शन आपूर्ति की गई सरणी को इन-प्लेस संशोधन करके एक सॉर्ट की गई सरणी लौटाता है। इसलिए मूल सरणी संशोधित हो जाती है जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है।

a = [9, 5, 3, 1, 12, 6]
print("मूल सरणी:\n", a)
print("सॉर्ट की गई सरणी:\n", a.sort())
print(a)

उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है:

मूल सरणी: [9, 5, 3, 1, 12, 6]
सॉर्ट की गई सरणी: [1, 3, 5, 6, 9, 12]

इसलिए sorted() फ़ंक्शन sort() से धीमा है क्योंकि यह मूल सरणी की एक प्रति बनाता है और फिर उसे संशोधित करता है।

अधिक जटिल सॉर्टिंग आवश्यकताओं के लिए Numpy का उपयोग किया जाता है। Numpy एक पायथन लाइब्रेरी है जिसका उपयोग वैज्ञानिक डेटा प्रोसेसिंग में बड़े पैमाने पर किया जाता है क्योंकि यह बहुत सारी उन्नत सुविधाएँ प्रदान करती है। हम नीचे दिए गए उदाहरणों में शुद्ध पायथन सॉर्टिंग विधियों और Numpy सॉर्टिंग विधियों दोनों को देखेंगे।

numpy.argsort

Numpy में यह फ़ंक्शन सॉर्ट की गई सरणी के इंडेक्स लौटाता है न कि सरणी तत्व। नीचे दिए गए उदाहरण में हम सरणी लेते हैं, प्रत्येक तत्व के लिए इंडेक्स के साथ उसके तत्व प्रिंट करते हैं। फिर हम argsort फ़ंक्शन लागू करते हैं जो हमें परिणाम के रूप में सॉर्ट की गई सरणी के इंडेक्स देता है और परिणाम भी एक सरणी है।

import numpy as np
x = np.array([9, 5, 3, 1, 12, 6])
print(x)
# तत्वों की स्थिति प्रिंट करें
for i in range(len(x)):
    print("[", i, "]", x[i], end=" ")
print("\n")
# सॉर्ट किए गए तत्वों के इंडेक्स प्रिंट करें
s = np.argsort(x)
print(s)

उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है:

[ 9  5  3  1 12  6]
[ 0 ] 9 [ 1 ] 5 [ 2 ] 3 [ 3 ] 1 [ 4 ] 12 [ 5 ] 6
[3 2 1 5 0 4]

numpy.lexsort

यह फ़ंक्शन एक से अधिक सरणी शामिल करके कई सॉर्ट कुंजियों का उपयोग करके सॉर्टिंग के लिए उपयोग किया जाता है। उदाहरण के लिए, हम पहले कॉलम A में डेटा सॉर्ट करते हैं और फिर कॉलम B में मान सॉर्ट करते हैं। नीचे दिए गए उदाहरण में हम कॉलम A और कॉलम B को दर्शाने वाली दो सरणियाँ लेते हैं। कॉलम A द्वारा पहले और फिर कॉलम B द्वारा सॉर्ट करने के लिए lexsort() फ़ंक्शन लागू करने पर हमें सॉर्टिंग का परिणाम कॉलम A में तत्वों के इंडेक्स वाली सरणी के रूप में मिलता है।

import numpy as np
colA = [2, 5, 1, 8, 1]  # पहला कॉलम
colB = [9, 0, 3, 2, 0]  # दूसरा कॉलम
# कॉलम A द्वारा सॉर्ट करें और फिर कॉलम B द्वारा
sorted_index = np.lexsort((colB, colA))
print(sorted_index)
# परिणाम प्रिंट करें जो कॉलम मानों को जोड़े के रूप में दिखाता है
print([(colA[i], colB[i]) for i in sorted_index])

उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है:

[4 2 0 1 3]
[(1, 0), (1, 3), (2, 9), (5, 0), (8, 2)]

जैसा कि आप देख सकते हैं colA में सबसे कम दो मान इंडेक्स स्थिति 2 और 4 पर 1 और 1 हैं। लेकिन परिणाम 4 और 2 को आरोही क्रम के रूप में दिखाता है क्योंकि कॉलम B में संबंधित मान जो 0 और 3 हैं, पहले 0 फिर 3 के रूप में सॉर्ट भी होते हैं, जिससे परिणाम 4 और 2 बनता है।

  1. पायथन प्रोग्राम: काउंटिंग सॉर्ट पायथन प्रोग्राम: काउंटिंग सॉर्ट

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक सरणी दी गई है, हमें काउंटिंग सॉर्ट की अवधारणा का उपयोग करके सरणी को क्रमबद्ध करना है। काउंटिंग सॉर्ट एक तकनीक है जिसमें हम एक विशिष्ट सीमा के बीच कीज़ पर काम करते हैं। इसमें विशिष्ट कुंजी और मान वाले ऑब्जेक्ट की संख्या गिनन

  1. पायथन प्रोग्राम में इंसर्शन सॉर्ट पायथन प्रोग्राम में इंसर्शन सॉर्ट

    इस लेख में, हम पायथन 3.x में इंसर्शन सॉर्ट के कार्यान्वयन के बारे में सीखेंगे। या इससे पहले। एल्गोरिदम इनपुट एलिमेंट्स पर इटरेट करें और प्रत्येक इटरेशन में सॉर्टेड ऐरे को बढ़ाएं। वर्तमान एलिमेंट की तुलना सॉर्टेड ऐरे में उपलब्ध सबसे बड़े मान से करें। यदि वर्तमान एलिमेंट बड़ा है, तो यह एलिमेंट को उ

  1. पायथन प्रोग्राम: इंसर्शन सॉर्ट एल्गोरिदम पायथन प्रोग्राम: इंसर्शन सॉर्ट एल्गोरिदम

    इस लेख में, हम पायथन 3.x या उससे पहले के संस्करण में इंसर्शन सॉर्ट के कार्यान्वयन के बारे में जानेंगे।एल्गोरिदम1. प्रत्येक पुनरावृत्ति पर सॉर्टेड सरणी को बढ़ाते हुए इनपुट तत्वों पर पुनरावृति करें।2. वर्तमान तत्व की तुलना सॉर्टेड सरणी में उपलब्ध सबसे बड़े मान से करें।3. यदि वर्तमान तत्व बड़ा है, तो इ