একটি নির্দিষ্ট ক্রমে ডেটা উপাদানগুলির অর্ডার করা একটি ঘন ঘন প্রয়োজনীয় অপারেশন৷ একটি অ্যারেতে উপাদানগুলি সাজানোর জন্য, পাইথন sorted() এবং array.sort() নামের ফাংশন ব্যবহার করে।
বাছাই (অ্যারে)
এই ফাংশনটি মূল অ্যারে পরিবর্তন না করে একটি সাজানো অ্যারে প্রদান করে৷
a =[9,5,3,1,12,6]b =sorted([9,5,3,1,12,6])print "Sorted Array :\n", print (b)print "অরিজিনাল অ্যারে :\n",প্রিন্ট (a)
উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয় -
সাজানো বিন্যাস :[1, 3, 5, 6, 9, 12]মূল বিন্যাস :[9, 5, 3, 1, 12, 6]
list.sort()
সাজানোর ফাংশন সরবরাহ করা অ্যারেতে ইন-প্লেস পরিবর্তন করে সাজানো অ্যারে ফেরত দেয়। তাই নীচের উদাহরণে দেখানো হিসাবে মূল অ্যারে সংশোধন করা হয়।
a =[9,5,3,1,12,6]প্রিন্ট করুন "অরিজিনাল অ্যারে :\n", প্রিন্ট (a)প্রিন্ট "Sorted Array :\n",a.sort()print (a)প্রে>উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয় -
অরিজিনাল অ্যারে :[9, 5, 3, 1, 12, 6] সাজানো অ্যারে :[1, 3, 5, 6, 9, 12]তাই sorted() ফাংশন sort() এর চেয়ে ধীর কারণ এটি মূল অ্যারের একটি অনুলিপি তৈরি করে এবং তারপরে এটি সংশোধন করে৷
Numpy ব্যবহার করে আরও জটিল সাজানোর প্রয়োজনীয়তা সম্পন্ন করা হয়। Numpy একটি পাইথন লাইব্রেরি যা বৈজ্ঞানিক ডেটা প্রক্রিয়াকরণে ব্যাপকভাবে ব্যবহৃত হয় কারণ এটি প্রচুর উন্নত বৈশিষ্ট্য সরবরাহ করে। আমরা নীচের উদাহরণগুলিতে বিশুদ্ধ পাইথন সাজানোর পদ্ধতি এবং নম্পি বাছাই পদ্ধতি উভয়ই দেখতে পাব।
numpy.argsort
নম্পিতে এই ফাংশনটি অ্যারের উপাদানগুলির পরিবর্তে সাজানো অ্যারের সূচকগুলি প্রদান করে। নীচের উদাহরণে আমরা অ্যারে নিই, প্রতিটি উপাদানের জন্য সূচক সহ এর উপাদানগুলি প্রিন্ট করি। তারপরে আমরা argsort ফাংশন প্রয়োগ করি যা আমাদের ফলাফল হিসাবে সাজানো অ্যারের সূচক দেয় এবং ফলাফলটিও একটি অ্যারে।
numpy npx =np.array([9,5,3,1,12,6])print(x) হিসেবে import করুন #i range(len(x)) এর জন্য উপাদানগুলির অবস্থান প্রিন্ট করুন:"[" প্রিন্ট করুন ,i,"]",x[i],print "\n"# সাজানো উপাদানের সূচক প্রিন্ট করুন =np.argsort(x)মুদ্রণ(গুলি)উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয় -
<প্রে>[ 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 এবং তারপরে কলাম অনুসারে সাজানোর জন্য lexsort() ফাংশন প্রয়োগ করার সময় B আমরা কলাম A-তে উপাদানগুলির সূচকগুলি সমন্বিত অ্যারে হিসাবে সাজানোর ফলাফল পাই।
numpy npcolA =[2,5,1,8,1] # প্রথম columncolB =[9,0,3,2,0] # দ্বিতীয় কলাম# ColA দ্বারা সাজান এবং তারপর colBsorted_index =np.lexsort( (colB,colA))print(sorted_index)#প্রিন্ট করুন ফলাফলটি #কলামের মানগুলিকে পেয়ারপ্রিন্ট হিসাবে দেখায় [(colA[i],colB[i]) 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 হিসাবে তৈরি করে।