فرز مجموعات NumPy
- الصفحة السابقة ترتيب مجموعات NumPy
- الصفحة التالية الإشارات العشوائية في NumPy
تمرير المصفوفة
استخراج بعض العناصر من مصفوفة موجودة لإنشاء مصفوفة جديدة يُسمى التمرير (filtering).
في NumPy، نستخدم قائمة التحقق الحولية لتحديد مصفوفات.
قائمة التحقق الحولية هي قائمة بالقيم الحولية التي تتوافق مع مؤشرات المصفوفة.
إذا كان القيمة في المؤشر True
سيتم تضمين العنصر في المصفوفة المفترضة؛ إذا كان القيمة في المؤشر False
سيتم استبعاد العنصر من المصفوفة المفترضة.
مثال
لإنشاء مصفوفة باستخدام العناصر في المؤشرات 0 و2 و4:
import numpy as np arr = np.array([61, 62, 63, 64, 65]) x = [True, False, True, False, True] newarr = arr[x] print(newarr)
سيقوم المثال السابق بتحويل [61, 63, 65]
لماذا؟
لأن المرشح الجديد يحتوي فقط على القيم في مصفوفة المرشحات True
القيمة، لذا في هذه الحالة، فإن المؤشرات هي 0 و2 و4.
إنشاء مصفوفة المرشحات
في المثال السابق، قمنا بإنشاء True
و False
تم تعيين القيمة بشكل صلب، ولكن الاستخدام العادي هو إنشاء مصفوفة مرشحات بناءً على الشروط.
مثال
أنشئ مصفوفة مرشحة تعود فقط بأعداد أكبر من 62:
import numpy as np arr = np.array([61, 62, 63, 64, 65]) # أنشئ قائمة فارغة filter_arr = [] # مرور عبر كل عنصر في arr for element in arr: # إذا كان العنصر أكبر من 62، يتم تعيين القيمة إلى True، وإلا يتم تعيينها إلى False: إذا كان العنصر أكبر من 62: filter_arr.append(True) else: filter_arr.append(False) newarr = arr[filter_arr] print(filter_arr) print(newarr)
مثال
أنشئ مصفوفة مرشحة، تعود فقط بأعداد زوجية من المصفوفة الأصلية:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7]) # أنشئ قائمة فارغة filter_arr = [] # مرور عبر كل عنصر في arr for element in arr: # إذا كان العنصر يمكن أن يتم تقسيمه على 2، يتم تعيين القيمة إلى True، وإلا يتم تعيينها إلى False if element % 2 == 0: filter_arr.append(True) else: filter_arr.append(False) newarr = arr[filter_arr] print(filter_arr) print(newarr)
إنشاء مرشح مباشر من المصفوفة
السابق هو مهمة شائعة جدًا في NumPy، يقدم NumPy طريقة جيدة لحل هذه المشكلة.
يمكننا استبدال المصفوفة مباشرة في الشروط بدلاً من المتغير القابل للتشغيل، وسيعمل كما هو متوقع.
مثال
أنشئ مصفوفة مرشحة تعود فقط بأعداد أكبر من 62:
import numpy as np arr = np.array([61, 62, 63, 64, 65]) filter_arr = arr > 62 newarr = arr[filter_arr] print(filter_arr) print(newarr)
مثال
أنشئ مصفوفة مرشحة، تعود فقط بأعداد زوجية من المصفوفة الأصلية:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7]) filter_arr = arr % 2 == 0 newarr = arr[filter_arr] print(filter_arr) print(newarr)
- الصفحة السابقة ترتيب مجموعات NumPy
- الصفحة التالية الإشارات العشوائية في NumPy