البرمجة

كيفية تطبيق قناع على مصفوفة numpy ثنائية الأبعاد

لتطبيق القناع (mask) بشكل صحيح على مصفوفة numpy ثنائية الأبعاد، يمكنك استخدام الوظيفة numpy.ma.masked_where بدلاً من استخدام numpy.ma.masked_array مع تكرار القناع (mask) لتكوين قناع ثنائي الأبعاد. هذا الأمر يجعل العملية أسهل وأكثر فعالية. إليك كيف يمكن القيام بذلك:

python
import numpy as np x = np.array([[1, 2], [2, 3], [3, 4]]) mask = [False, False, True] # تكرار القناع لتكوين قناع ثنائي الأبعاد mask2D = np.repeat([mask], x.shape[1], axis=0).T # تطبيق القناع على المصفوفة الثنائية الأبعاد newX = np.ma.masked_where(mask2D, x) print(newX)

ستحصل على الناتج التالي:

lua
[[1 2] [2 3] [-- --]]

هذا الناتج يعكس تطبيق القناع على المصفوفة الأساسية x، حيث أن القيم في المواضع التي تتوافق مع True في القناع mask تصبح قيم معقودة (masked) في المصفوفة الناتجة newX.

المزيد من المعلومات

بالطبع! في الكود السابق، استخدمت numpy.repeat لتكرار القناع mask ليتناسب مع عدد الأعمدة في المصفوفة x. ثم استخدمت np.ma.masked_where لتطبيق القناع على المصفوفة الأساسية x، حيث تم تحويل القيم التي تتوافق مع True في القناع إلى قيم معقودة (masked) في المصفوفة الناتجة newX.

يمكنك أيضًا استخدام np.ma.compress_rows لضغط الصفوف المعقودة (masked rows) في المصفوفة newX، مما يعيد المصفوفة إلى شكلها الأصلي بدون الصفوف المعقودة:

python
newX = np.ma.compress_rows(newX) print(newX)

ستحصل على الناتج التالي:

lua
[[1 2] [2 3]]

هذا الأمر يمكن أن يكون مفيدًا إذا كنت بحاجة إلى إزالة الصفوف المعقودة من المصفوفة الناتجة.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر