NumPy 1.14 - numpy.lexsort()

numpy.lexsort




numpy

numpy.lexsort

numpy.lexsort(keys, axis=-1)

कुंजियों के अनुक्रम का उपयोग करके एक अप्रत्यक्ष प्रकार करें।

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

पैरामीटर:

कुंजियाँ : (के, एन) सरणी या टपल युक्त के (एन,) - आकार के क्रम

k अलग "कॉलम" को क्रमबद्ध किया जाना है। अंतिम कॉलम (या पंक्ति यदि keys 2 डी सरणी है) प्राथमिक प्रकार की कुंजी है।

अक्ष : int, वैकल्पिक

अक्ष को अप्रत्यक्ष रूप से सॉर्ट किया जाना है। डिफ़ॉल्ट रूप से, अंतिम अक्ष पर सॉर्ट करें।

यह दिखाता है:

सूचकांक : (एन), indarts of ints

निर्दिष्ट अक्ष के साथ कुंजियों को छांटने वाले सूचकांकों की सरणी।

यह भी देखें

argsort
अप्रत्यक्ष प्रकार।
ndarray.sort
इन-प्लेस सॉर्ट।
sort
किसी सरणी की सॉर्ट की गई प्रति लौटाएं।

उदाहरण

क्रमबद्ध नाम: पहले उपनाम से, फिर नाम से।

>>> surnames =    ('Hertz',    'Galilei', 'Hertz')
>>> first_names = ('Heinrich', 'Galileo', 'Gustav')
>>> ind = np.lexsort((first_names, surnames))
>>> ind
array([1, 2, 0])
>>> [surnames[i] + ", " + first_names[i] for i in ind]
['Galilei, Galileo', 'Hertz, Gustav', 'Hertz, Heinrich']

संख्याओं के दो स्तंभों को क्रमबद्ध करें:

>>> a = [1,5,1,4,3,4,4] # First column
>>> b = [9,4,0,4,0,2,1] # Second column
>>> ind = np.lexsort((b,a)) # Sort by a, then by b
>>> print(ind)
[2 0 4 6 5 3 1]
>>> [(a[i],b[i]) for i in ind]
[(1, 0), (1, 9), (3, 0), (4, 1), (4, 2), (4, 4), (5, 4)]

ध्यान दें कि छँटाई पहले तत्वों के अनुसार a । द्वितीयक छंटाई b के तत्वों के अनुसार होती है।

एक सामान्य argsort होती:

>>> [(a[i],b[i]) for i in np.argsort(a)]
[(1, 9), (1, 0), (3, 0), (4, 4), (4, 2), (4, 1), (5, 4)]

संरचित सरणियों को argsort रूप से क्रमबद्ध किया argsort :

>>> x = np.array([(1,9), (5,4), (1,0), (4,4), (3,0), (4,2), (4,1)],
...              dtype=np.dtype([('x', int), ('y', int)]))
>>> np.argsort(x) # or np.argsort(x, order=('x', 'y'))
array([2, 0, 4, 6, 5, 3, 1])