TheBrain نشر 11 ديسمبر 2015 أرسل تقرير نشر 11 ديسمبر 2015 أريد معرفة كيف يمكنني فرز مصفوفة في numpy حسب عمود معين كما في المثال التالي:a = array([[1,2,3],[4,5,6],[0,0,1]]) لنفترض أنني أريد فرز هذه القوائم حسب العمود الثاني ليكون الناتج كالتالي:array([[0,0,1],[1,2,3],[4,5,6]]) فما هي الطريقة الصحيحة لفعل ذلك؟ اقتباس
0 هشام رزق الله نشر 11 ديسمبر 2015 أرسل تقرير نشر 11 ديسمبر 2015 هنالك عدّة طرق لفرز المصفوفات في numpy حسب عمود معين في بايثون، فمثلا يمكننك استخدام دالة view() مع دوال sort وغيرها لترتيب المصفوفة حسب المطلوب كما في المثال التالي: In [1]: import numpy as np In [2]: a = np.array([[1,2,3],[4,5,6],[0,0,1]]) In [3]: np.sort(a.view('i8,i8,i8'), order=['f1'], axis=0).view(np.int) Out[3]: array([[0, 0, 1], [1, 2, 3], [4, 5, 6]])أو يمكنك القيام بذلك بطريقة أقصر عن طريق استخدام دالة argsort:a[a[:,1].argsort()] ومن الطرق المفيدة أيضا، استخدام دالة sorted() مع جعل المفاتح دالة lambda كما تظهر في المثال التالي:a = ([[1,2,3],[4,5,6],[0,0,1]]); a = sorted(a, key=lambda a_entry: a_entry[1]) print a وسيكون الناتج:[[[0, 0, 1], [1, 2, 3], [4, 5, 6]]]المصدر اقتباس
السؤال
TheBrain
أريد معرفة كيف يمكنني فرز مصفوفة في numpy حسب عمود معين كما في المثال التالي:
لنفترض أنني أريد فرز هذه القوائم حسب العمود الثاني ليكون الناتج كالتالي:
فما هي الطريقة الصحيحة لفعل ذلك؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.