كيفية فرز مصفوفة numpy حسب العمود (مع أمثلة)
يمكنك استخدام الطرق التالية لفرز صفوف مصفوفة NumPy حسب قيم الأعمدة:
الطريقة الأولى: الفرز حسب قيم الأعمدة بترتيب تصاعدي
x_sorted_asc = x[x[:, 1]. argsort ()]
الطريقة الثانية: الفرز حسب قيم الأعمدة التنازلية
x_sorted_desc = x[x[:, 1]. argsort ()[::-1]]
توضح الأمثلة التالية كيفية استخدام كل طريقة عمليًا.
المثال 1: فرز المصفوفة Numpy حسب قيم الأعمدة بترتيب تصاعدي
لنفترض أن لدينا مجموعة NumPy التالية:
import numpy as np #create array x = np. array ([14, 12, 8, 10, 5, 7, 11, 9, 2]). reshape (3,3) #view array print (x) [[14 12 8] [10 5 7] [11 9 2]]
يمكننا استخدام الكود التالي لفرز صفوف جدول NumPy بترتيب تصاعدي بناءً على القيم الموجودة في العمود الثاني:
#define new matrix with rows sorted in ascending order by values in second column
x_sorted_asc = x[x[:, 1]. argsort ()]
#view sorted matrix
print (x_sorted_asc)
[[10 5 7]
[11 9 2]
[14 12 8]]
لاحظ أنه يتم الآن فرز الصفوف تصاعديًا (من الأصغر إلى الأكبر) بناءً على القيم الموجودة في العمود الثاني.
المثال 2: فرز المصفوفة Numpy بقيم الأعمدة التنازلية
لنفترض أن لدينا مجموعة NumPy التالية:
import numpy as np #create array x = np. array ([14, 12, 8, 10, 5, 7, 11, 9, 2]). reshape (3,3) #view array print (x) [[14 12 8] [10 5 7] [11 9 2]]
يمكننا استخدام الكود التالي لفرز صفوف جدول NumPy بترتيب تنازلي بناءً على القيم الموجودة في العمود الثاني:
#define new matrix with rows sorted in descending order by values in second column
x_sorted_desc = x[x[:, 1]. argsort ()[::-1]]
#view sorted matrix
print (x_sorted_desc)
[[14 12 8]
[11 9 2]
[10 5 7]]
لاحظ أنه تم الآن فرز الصفوف تنازليًا (من الأكبر إلى الأصغر) بناءً على القيم الموجودة في العمود الثاني.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في بايثون:
كيفية العثور على فهرس القيمة في مجموعة NumPy
كيفية الحصول على عمود معين من مجموعة NumPy
كيفية إضافة عمود إلى مجموعة NumPy