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

a.sort, क्रमबद्ध (a), np_argsort(a) और np.lexsort(b, a) पायथन में


डेटा तत्वों को एक विशिष्ट क्रम में क्रमित करना अक्सर आवश्यक ऑपरेशन है। किसी ऐरे में एलीमेंट को सॉर्ट करने के लिए, पायथन सॉर्टेड () और ऐरे.सॉर्ट () नामक फंक्शन का उपयोग करता है।

क्रमबद्ध (सरणी)

यह फ़ंक्शन मूल सरणी को संशोधित किए बिना एक क्रमबद्ध सरणी देता है।

a = [9,5,3,1,12,6]
b = sorted([9,5,3,1,12,6])
print "Sorted Array :\n",
print (b)
print "Original Array :\n",
print (a)

उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -

Sorted Array :
[1, 3, 5, 6, 9, 12]
Original Array :
[9, 5, 3, 1, 12, 6]

list.sort()

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

a = [9,5,3,1,12,6]
print "Original Array :\n",
print (a)
print "Sorted Array :\n",
a.sort()
print (a)

उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -

Original Array :
[9, 5, 3, 1, 12, 6]
Sorted Array :
[1, 3, 5, 6, 9, 12]

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

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

numpy.argsort

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

import numpy as np
x = np.array([9,5,3,1,12,6])
print(x)

#Print the positions of elements
for i in range(len(x)):
print "[",i,"]",x[i],
print "\n"
# Print the indices of sorted elements
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

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

import numpy as np
colA = [2,5,1,8,1] # First column
colB = [9,0,3,2,0] # Second column
# Sort by ColA and then by colB
sorted_index = np.lexsort((colB,colA))
print(sorted_index)
#print the result showing the
#column values as pairs
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)]

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


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

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

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

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

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

    इस लेख में, हम पायथन 3.x में इंसर्शन सॉर्ट के कार्यान्वयन के बारे में जानेंगे। या पहले। एल्गोरिदम 1. Iterate over the input elements by growing the sorted array at each iteration. 2. Compare the current element with the largest value available in the sorted array. 3. If the current element is greate