الفهرس على محور الأعمدة يحدد موقعا داخل الصف الذي يخصه؛ لا يحدد خلية واحدة مشتركة بين الصفوف. في take_along_axis تستطيع قائمة فهارس مطابقة للصفوف أن تختار عمودا مختلفا من كل صف. لذلك يجب أن يشرح المساعد محور الاختيار وعلاقة الفهارس بالصفوف، خصوصا قبل نقل ميزات إلى نموذج.
الخلاصة السريعة
مع axis=1 في مثالنا، تختار فهارس كل صف قيما من الصف نفسه، وليست مواضع في مصفوفة مسطحة.
- تطابق take_along_axis شرائح الفهارس والبيانات على المحور المحدد؛ axis=None يسطيح الإدخال، والمثال يحدد axis=1 صراحة. [1]
- صفنا الأول 11 ، 15 ، 19 والثاني 21 ، 25 ، 29 ؛ الفهارس 2 ، 0 للأول و 1 ، 2 للثاني تختار 19 ، 11 و 25 ، 29.
- الفهرس 1 في الصف الثاني يختار 25 ؛ الموضع 1 في القائمة المسطحة المعلنة يختار 15 ، فهما عقدان مختلفان.
- تحقق من شكل الفهارس ومحورها وبقائها مرتبطة بالصفوف؛ عدد الأعمدة المختارة قد يختلف عن الأصل، والاختيار ليس جمعا أو تقدير قيمة مفقودة.
أي محور يحدد معنى الفهرس؟
تعمل take_along_axis على شرائح أحادية البعد متطابقة من البيانات والفهارس على المحور المختار. يمكن أن يختلف طول شريحة الفهارس عن طول شريحة البيانات. وإذا كان axis=None، يعامل الإدخال بعد تسطيحه. صار المحور الافتراضي -1 منذ NumPy 2.3 ؛ سنحدد axis=1 صراحة. [1]
نختار مصفوفة من صفين وثلاثة أعمدة، ونسمي الصفين أ وب. فهرس العمود يبدأ من الصفر. لا نحتاج إلى تخمين ترتيب تخزين خفي؛ جدولنا يبين كل القيم، وشرط المثال أن كل صف فهارس يتبع صف بياناته.
كيف تختلف الاختيارات بين الصفين؟
صف أ يحمل 11 ، 15 ، 19 ، وصف ب يحمل 21 ، 25 ، 29. قائمة فهارس أ هي 2 ، 0 ، وقائمة فهارس ب هي 1 ، 2. في أ نختار العمود 2 ثم العمود 0 ، فنحصل على 19 ، 11. وفي ب نختار العمود 1 ثم العمود 2 ، فنحصل على 25 ، 29.
مصفوفة النتيجة المعلنة تحتوي صفين وعمودين، بينما الأصل صفان وثلاثة أعمدة. لم نجمع قيم الصف، ولم نستخرج قيمة جديدة؛ اخترنا خليتين موجودتين لكل صف وبالترتيب الذي حددته فهارسه. هذه متابعة يدوية لعلاقة معلنة، وليست ناتجا سجلناه من برنامج.
لماذا لا تعادل الفهارس مواضع التسطيح؟
لو كتبنا للتوضيح قائمة مسطحة بترتيب الصف الأول ثم الثاني، تصبح 11 ، 15 ، 19 ، 21 ، 25 ، 29. الموضع 1 في هذه القائمة يحمل 15. لكنه في اختيار الصف ب على axis=1 يخص العمود الثاني من ب ويحمل 25.
لا تستبدل شرح اختيار صف ب بعبارة خذ العنصر الثاني من جميع البيانات. كذلك لو أعطيت الصفين الفهارس 2 ، 0 نفسها، ستكون نتيجة ب هي 29 ، 21 ، لا نتيجته السابقة. اختلاف قوائم الفهارس بين الصفوف جزء من المسألة، وليس زينة في جدول الإدخال.
ما الذي تراجعه في بطاقة الاختيار؟
راجع أن الفهارس والأصل يحملان الأبعاد المتوافقة المطلوبة للمحور المختار. توثق الدالة شروط مطابقة الأبعاد، مع إمكان البث في الأبعاد الأخرى. [1]
في حالتنا البسيطة تحقق من صفين للبيانات وصفين للفهارس، ومن فهارس أعمدة صالحة ضمن 0 و 1 و 2. سم الصف أ وب في الإدخال والنتيجة حتى لا تنقل فهارس صف إلى آخر. وإذا تغير ترتيب الصفوف، فلا تبق الفهارس القديمة منفصلة عنها.
ينبغي أن يبين جواب المساعد هل اختار قيمًا موجودة أم حسب ملخصا. لا تجعل صحة شكل النتيجة دليلًا على صحة المعنى؛ فقد يحمل جدول من صفين وعمودين القيم الخطأ لو استعمل محورا مختلفا أو ربط فهارس الصفوف خطأ.
المصادر ومتابعة القراءة
أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.
