تقنية

حذف محور منفرد: هل نحفظ محور الدفعة؟

شكل بثلاثة محاور واحد وأربعة وواحد يتحول إلى بعد واحد عند حذف كل المحاور المنفردة أو إلى بعدين عند حذف الأخير فقط
مقارنة تنظيمات مؤلفة للأعداد 3 و 8 و 12 و 21 ؛ لا استدعاء فعلي للدالة.

حذف محور منفرد مع حفظ محور الدفعة يحتاج إلى اختيار المحور المقصود. لا تمنح تسمية المحور «دفعة» حماية له عند حذف كل المحاور ذات الطول واحد. نؤلف مدخلا بأربعة أعداد، ونقارن تنظيما يحتفظ بمحور الدفعة بآخر يزيله أيضا.

الخلاصة السريعة

ليس تلقائيا؛ إذا كان محور الدفعة طوله واحدا، فقد يزيله squeeze العام. حدد المحور الذي تريد حذفه بدل الاعتماد على اسمه في الشرح.

  • يوثق squeeze حذف محاور طولها واحد، ويتيح اختيار بعضها بمعامل axis. اختيار محور طوله أكبر من واحد يرفع خطأ. [1]
  • نعلن مدخلا بثلاثة محاور أطوالها 1 ثم 4 ثم 1 ، ونسمي الأول دفعة. حذف كل المحاور المنفردة يبقي محور الأربع وحده، فيفقد المثال محور الدفعة أيضا.
  • إذا حذفنا المحور الأخير وحده، تبقى الأطوال 1 ثم 4 ؛ الأربعة أعداد 3 و 8 و 12 و 21 ثابتة. إزالة محور طوله 1 لا تعني حذف قيمة عددية.
  • اختيار المحور الأوسط، طوله 4 ، ليس طريقة لإزالة القيم الأربع؛ يخالف شرط squeeze ويعطي خطأ وفق العقد. [1] راجع الشكل المطلوب ومعنى المحاور؛ لم ننفذ المكتبة أو نموذجا.

أي محور نريد إزالته؟

تحدد وثائق squeeze أن المحاور التي تزال طولها واحد، ويمكن اختيار مجموعة منها بدلا من حذفها كلها. [1]

نعلن مدخل تمريننا بثلاثة محاور: الأول يمثل دفعة من حالة واحدة، والثاني أربعة مواضع لميزات الحالة، والثالث محور إضافي طوله واحد. هذه معان نختارها نحن؛ الدالة لا تستنتج من أسمائنا أي محور ينبغي أن يبقى.

نسمي المحور الأخير هدف الحذف في تمريننا، لأن وصف الجزء التالي يطلب دفعة وميزات في محورين. لا نعمم هذا العقد على كل نموذج؛ قد يحتاج جزء آخر إلى التنظيم ذي المحاور الثلاثة كما هو.

ماذا يفعل حذف المحاور المنفردة كلها؟

أطوال مدخلنا هي 1 ثم 4 ثم 1 ، وأعداده 3 و 8 و 12 و 21. المحوران الأول والأخير منفردان؛ عند حذف كليهما يبقى محور واحد بطول 4. عدد القيم ما زال أربعة، لكن التنظيم لم يعد يحوي محور الدفعة الذي أعلنّاه.

بقاء الأعداد نفسها لا يكفي لتحقيق عقد الجزء التالي في مثالنا. كنا نريد محور دفعة ومحور ميزات، فأصبح لدينا متجه أحادي. لم تنقص ميزة أو تتغير قيمتها؛ الذي اختفى حدود محور موجود.

نقارن هذا بحذف المحور الأخير فقط: يبقى الأول بطول 1 والثاني بطول 4. لدينا صف واحد بأربع قيم، وهو التنظيم الذي طلبه وصفنا المعلن.

الاختيار في مثالناالمحاور الباقيةعدد القيممحور الدفعة
حذف كل المحاور بطول 1محور واحد بطول 44اختفى
حذف المحور الأخير فقطمحوران بطولي 1 ثم 44بقي

هل يمكن حذف محور الأربع بهذه العملية؟

إذا اختير محور طوله أكبر من واحد، يوثق squeeze رفع خطأ. [1] في مدخلنا، المحور الأوسط طوله 4 ، فلا نستعمل حذف المحور المنفرد لإزالته.

لا نفسر الخطأ بأنه فقد ثلاث ميزات أو تلخيصها في قيمة واحدة. هذا طلب لا يطابق شرط العملية. حساب متوسط أو اختيار عنصر أو حذف قيم عمليات أخرى، ولكل منها معنى يجب تحديده قبل تغيير البيانات.

وبالعكس، عندما نحذف المحور الأخير ذي الطول 1 ، لا نحذف العدد 21 أو أي عدد آخر. ذلك المحور يضع كل قيمة في موضع مفرد إضافي؛ إزالته تغير التنظيم، دون أن تقلل الأربعة أعداد في تمريننا.

كيف نجعل اختيار الحذف قابلا للمراجعة؟

نقترح كتابة الشكل قبل العملية وبعدها، وتسمية المحور الذي نحذفه: الأخير ذو الطول 1 في هذا المثال. ثم نراجع أن محور الدفعة الذي أردنا إبقاءه حاضر فعلا، بدلا من الاستدلال من أن عدد العناصر ما زال أربعة.

وعند تغير حجم الدفعة، لا نفترض أن السلوك العام هو نفسه: محور دفعة طوله أكبر من واحد لا يدخل في قائمة المحاور المنفردة. لهذا نفضل وصف المحور المقصود وحالة المدخل على وصف غامض مثل «احذف الأبعاد الزائدة».

لم ننفذ squeeze أو نعالج مخرجات نموذج. الرسم يميز حذف محور محدد من حذف كل المحاور المنفردة، ويبين أن الأسماء الدلالية التي اخترناها تحتاج إلى عقد واضح كي نحافظ عليها.

المصادر ومتابعة القراءة

  1. NumPy: squeeze (يفتح في نافذة جديدة)numpy.org

أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.