توفر الوحدة numpy في Python وظيفة تسمى numpy.pad() لتنفيذ الحشو في المصفوفة. تحتوي هذه الوظيفة على العديد من المعلمات المطلوبة والاختيارية.
بناء الجملة:
numpy.pad(array, pad_width, mode='constant', **kwargs)
حدود:
المصفوفة: array_like
هذه هي المصفوفة المصدرية التي نريد حشوها.
Pad_width: int، أو التسلسل، أو array_like
تحدد هذه المعلمة عدد القيم المحشوة بحواف كل محور. يتم تعريف عروض اللوحة الفريدة لكل محور على أنها (before_1، after_1)، (before_2، after_2)، ... (before_N، after_N)). لكل محور ((قبل، بعد)) سيتم التعامل معه بنفس الطريقة التي تعامل بها قبل وبعد اللوحة. بالنسبة لجميع المحاور، يعد int أو (pad) اختصارًا لما قبل = بعد = عرض اللوحة.
الوضع: str أو وظيفة (اختياري)
تحتوي هذه المعلمة على إحدى قيم السلسلة التالية:
'ثابت'(افتراضي)
إطار تكنتر
إذا قمنا بتعيين قيمة ثابتة لمعلمة الوضع، فسيتم إجراء الحشو بقيمة ثابتة.
'حافة'
إنها قيمة حافة المصفوفة. سيتم إجراء الحشو بقيمة الحافة هذه.
'المنحدر الخطي'
تُستخدم هذه القيمة لإجراء الحشو مع المنحدر الخطي بين قيمة الحافة والقيمة النهائية.
'أقصى'
تقوم قيمة المعلمة هذه بتنفيذ الحشو باستخدام القيمة القصوى لجزء المتجه أو الكل، على طول كل محور.
'يقصد'
تقوم قيمة المعلمة هذه بتنفيذ الحشو عبر القيمة المتوسطة لجزء المتجه أو الكل، على طول كل محور.
'الوسيط'
تقوم قيمة المعلمة هذه بتنفيذ الحشو عبر القيمة المتوسطة لجزء المتجه أو الكل، على طول كل محور.
'الحد الأدنى'
تقوم قيمة المعلمة هذه بتنفيذ الحشو عبر القيمة الدنيا لجزء المتجه أو الكل، على طول كل محور.
'يعكس'
تعمل هذه القيمة على دعم المصفوفة عبر انعكاس المتجه، والذي ينعكس على قيم متجه البداية والنهاية، على طول كل محور.
'متماثل'
يتم استخدام هذه القيمة لتضمين المصفوفة عبر انعكاس المتجه، والذي ينعكس على طول حافة المصفوفة.
'طَوّق'
تُستخدم هذه القيمة لتنفيذ حشوة المصفوفة من خلال التفاف المتجه على طول المحور. تُستخدم قيم البداية لحشو النهاية، وقيم النهاية لحشو البداية.
'فارغ'
كيفية تحميل فيديوهات اليوتيوب vlc
يتم استخدام هذه القيمة لحشو المصفوفة بقيم غير محددة.
stat_length: int أو التسلسل (اختياري)
يتم استخدام هذه المعلمة في 'الحد الأقصى'، 'الحد الأدنى'، 'المتوسط'، 'الوسيط'. فهو يحدد عدد القيم عند كل محور حافة، المستخدم لحساب القيمة الثابتة.
القيم الثابتة: العددية أو التسلسل (اختياري)
يتم استخدام هذه المعلمة في 'ثابت'. فهو يحدد القيم لتعيين القيم المبطنة لكل محور.
القيم النهائية: العددية أو التسلسل (اختياري)
يتم استخدام هذه المعلمة في 'linear_ramp'. فهو يحدد القيم المستخدمة للقيمة الأخيرة للمنحدر الخطي وستشكل حافة المصفوفة المبطنة.
نوع الانعكاس: زوجي أو فردي (اختياري)
يتم استخدام هذه المعلمة في 'متماثل' و'عاكس'. افتراضيًا، يكون نوع Reflect_type 'زوجيًا' مع انعكاس غير متغير حول قيمة الحافة. من خلال طرح القيم المنعكسة من ضعف قيمة الحافة، يتم إنشاء الجزء الموسع من المصفوفة للنمط 'الفردي'.
عائدات:
الوسادة: ندارراي
تُرجع هذه الدالة المصفوفة المبطنة ذات الرتبة المساوية للمصفوفة التي يزيد شكلها وفقًا لـpad_width.
مثال 1:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'constant', constant_values=(6, 4)) y
انتاج:
array([6, 6, 6, 1, 3, 2, 5, 4, 4, 4])
في الكود أعلاه
- لقد قمنا باستيراد numpy بالاسم المستعار np.
- لقد أنشأنا قائمة بالقيم x.
- لقد أعلنا عن المتغير y وقمنا بتعيين القيمة المعادة للدالة np.pad().
- لقد مررنا القائمة x، Pad_width، وقمنا بضبط الوضع على ثابت و Constant_values في الوظيفة.
- وأخيرًا، حاولنا طباعة قيمة y.
في الإخراج، يُظهر ndarray مبطن بالحجم والقيم المحددة.
مثال 2:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'edge') y
انتاج:
array([1, 1, 1, 1, 3, 2, 5, 4, 4, 4])
مثال 3:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'linear_ramp', end_values=(-4, 5)) y
انتاج:
array([-4, -2, 0, 1, 3, 2, 5, 4, 4, 5])
مثال 4:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'maximum') y
انتاج:
array([5, 5, 5, 1, 3, 2, 5, 4, 5, 5, 5])
مثال 5:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'mean') y
انتاج:
array([3, 3, 3, 1, 3, 2, 5, 4, 3, 3, 3])
مثال 6:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'median') y
انتاج:
array([3, 3, 3, 1, 3, 2, 5, 4, 3, 3, 3])
مثال 7:
import numpy as np a = [[1, 2], [3, 4]] y = np.pad(x, (3,), 'minimum') y
انتاج:
array([[1, 1, 1, 1, 2, 1, 1], [1, 1, 1, 1, 2, 1, 1], [1, 1, 1, 1, 2, 1, 1], [3, 3, 3, 3, 4, 3, 3], [1, 1, 1, 1, 2, 1, 1], [1, 1, 1, 1, 2, 1, 1], [1, 1, 1, 1, 2, 1, 1]])
مثال 8:
import numpy as np def pad_with(vector, pad_width, iaxis, kwargs): padding_value = kwargs.get('padder', 10) vector[:pad_width[0]] = padding_value vector[-pad_width[1]:] = padding_value x = np.arange(6) x = x.reshape((3, 2)) y = np.pad(x, 3, pad_with) y
انتاج:
array([41, 31, 21, 11, 21, 31, 41, 51, 41, 31])
في الكود أعلاه
- لقد قمنا باستيراد numpy بالاسم المستعار np.
- لقد أنشأنا وظيفة Pad_with مع المتجه , Pad_width , iaxis ، و kwargs .
- لقد أعلنا عن المتغير Pad_value للحصول على قيم الحشو من ملف يحصل() وظيفة.
- لقد مررنا قيم الحشو إلى جزء المتجه.
- لقد أنشأنا مصفوفة x باستخدام الدالة np.arange() وقمنا بتغيير الشكل باستخدام الدالة reshape().
- لقد أعلنا عن المتغير y وقمنا بتعيين القيمة المعادة للدالة np.pad().
- لقد مررنا القائمة x وpad_width في الوظيفة
- وأخيرًا، حاولنا طباعة قيمة y.
في الإخراج، يُظهر ndarray مبطن بالحجم والقيم المحددة.
مثال 9:
import numpy as np import numpy as np def pad_with(vector, pad_width, iaxis, kwargs): padding_value = kwargs.get('padder', 10) vector[:pad_width[0]] = padding_value vector[-pad_width[1]:] = padding_value x = np.arange(6) x = x.reshape((3, 2)) np.pad(x, 3, pad_with)
انتاج:
array([[10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 0, 1, 10, 10, 10], [10, 10, 10, 2, 3, 10, 10, 10], [10, 10, 10, 4, 5, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10]])
مثال 10:
import numpy as np import numpy as np def pad_with(vector, pad_width, iaxis, kwargs): ... pad_value = kwargs.get('padder', 10) ... vector[:pad_width[0]] = pad_value ... vector[-pad_width[1]:] = pad_value x = np.arange(6) x = x.reshape((3, 2)) np.pad(x, 3, pad_with, padder=100)
انتاج:
array([[100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 0, 1, 100, 100, 100], [100, 100, 100, 2, 3, 100, 100, 100], [100, 100, 100, 4, 5, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100]])