Numpy array में तत्वों को कैसे ऑर्डर करें (उदाहरण के साथ)
आप NumPy सरणी में तत्वों के क्रम की गणना करने के लिए निम्न में से किसी भी विधि का उपयोग कर सकते हैं:
विधि 1: NumPy से argsort() का उपयोग करें
import numpy as np
ranks = np. array (my_array). argsort (). argsort ()
विधि 2: SciPy के रैंकडेटा का उपयोग करें()
from scipy. stats import rankdata
ranks = rankdata(my_array)
निम्नलिखित उदाहरण दिखाते हैं कि निम्नलिखित NumPy सरणी के साथ अभ्यास में प्रत्येक विधि का उपयोग कैसे करें:
import numpy as np
#define array of values
my_array = np. array ([3, 5, 2, 1, 9, 9])
#view array
print (my_array)
[3 5 2 1 9 9]
उदाहरण 1: argsort() का उपयोग करके NumPy Array में तत्वों को क्रमबद्ध करें
निम्नलिखित कोड दिखाता है कि सरणी तत्वों को क्रमबद्ध करने के लिए NumPy के argsort() फ़ंक्शन का उपयोग कैसे करें:
#calculate rank of each item in array
ranks = np. array (my_array). argsort (). argsort ()
#view ranks
print (ranks)
[2 3 1 0 4 5]
परिणाम मूल सरणी में प्रत्येक तत्व की रैंक दिखाते हैं, जिसमें 0 सबसे कम मान का प्रतिनिधित्व करता है।
इस दृष्टिकोण का लाभ यह है कि आपको कोई अतिरिक्त मॉड्यूल लोड करने की आवश्यकता नहीं है, लेकिन नुकसान यह है कि लिंक को संभालने के लिए argsort() में केवल एक विधि है।
डिफ़ॉल्ट रूप से, argsort() लिंक को संभालने के लिए एक क्रमिक विधि का उपयोग करता है, जिसका अर्थ है कि लिंक किया गया मान जो पहले दिखाई देता है उसे स्वचालित रूप से निचली रैंक दी जाती है।
उदाहरण 2: रैंकडेटा() का उपयोग करके NumPy Array में तत्वों को रैंक करें
निम्नलिखित कोड दिखाता है कि सरणी तत्वों को रैंक करने के लिए SciPy के रैंकडेटा() फ़ंक्शन का उपयोग कैसे करें:
from scipy. stats import rankdata
#calculate rank of each item in array
ranks = rankdata(my_array)
#view ranks
print (ranks)
array([3. , 4. , 2. , 1. , 5.5, 5.5])
परिणाम मूल सरणी में प्रत्येक तत्व की रैंक दिखाते हैं, जिसमें 1 सबसे छोटा मान दर्शाता है।
यदि आप चाहते हैं कि 0 सबसे छोटे मान का प्रतिनिधित्व करे, तो बस प्रत्येक मान से 1 घटाएँ:
from scipy. stats import rankdata
#calculate rank of each item in array
ranks = rankdata(my_array) - 1
#view ranks
print (ranks)
[2. 3. 1. 0. 4.5 4.5]
डिफ़ॉल्ट रूप से, रैंकडेटा() फ़ंक्शन संबंधों के साथ सभी मानों को औसत रैंक प्रदान करता है।
हालाँकि, आप लिंक को अलग तरीके से संभालने के लिए विधि तर्क का उपयोग कर सकते हैं।
उदाहरण के लिए, निम्नलिखित कोड दिखाता है कि लिंक प्रबंधन विधि के रूप में ऑर्डिनल का उपयोग कैसे करें:
from scipy. stats import rankdata
#calculate rank of each item in array
ranks = rankdata(my_array, method=' ordinal ') - 1
#view ranks
print (ranks)
[2 3 1 0 4 5]
यह NumPy की argsort() विधि के समान परिणाम उत्पन्न करता है।
अन्य लिंक प्रबंधन विधियों में न्यूनतम , अधिकतम और सघन शामिल हैं।
SciPy दस्तावेज़ में प्रत्येक विधि के बारे में जानें।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि NumPy में अन्य सामान्य कार्य कैसे करें:
NumPy सरणी से डुप्लिकेट तत्वों को कैसे हटाएं
फ़्लोट की NumPy सारणी को पूर्णांकों में कैसे परिवर्तित करें
NumPy मैट्रिक्स को ऐरे में कैसे बदलें