شكل قيمة واحدة في NumPy لا يحدده عدد العناصر وحده. يمكن أن ننظم العدد 7 بلا محور، أو في متجه ذي عنصر واحد، أو في مصفوفة ذات صف وعمود. نميز وصف الشكل من وصف القيمة حتى لا تصبح كلمة «واحد» جوابا غامضا عن سؤالين مختلفين.
الخلاصة السريعة
لا؛ قد يبقى عدد العناصر واحدا والقيمة 7 نفسها، بينما يتغير عدد المحاور من صفر إلى واحد إلى اثنين.
- تعرف NumPy ndim بعدد الأبعاد، وتصف القيم المفردة بأنها صفرية الأبعاد؛ shape يعطي أطوال المحاور في قائمة مرتبة. [1][2]
- في تنظيماتنا للعدد 7: بلا محور، ثم محور واحد بطول 1 ، ثم محوران طول كل منهما 1. جميعها تحتوي قيمة عددية واحدة، لكنها ليست الشكل نفسه.
- طول محور يساوي 1 لا يعني أن المحور غير موجود. لذلك لا نخلط مصفوفة صف واحد وعمود واحد بمتجه أحادي أو بتنظيم بلا محور.
- اكتب عدد المحاور وأطوالها ومعناها عند نقل البيانات. تساوي القيمة لا يقرر تنظيم المستهلك المطلوب؛ لا نحذف محاور لمجرد تقليل الأقواس أو نزعم تجربة نموذج.
هل نعد القيم أم المحاور؟
يعيد ndim عدد الأبعاد ويصف القيم المفردة بأنها بلا أبعاد، بينما تعطي shape أطوال الأبعاد في ترتيبها. [1][2]
نختار العدد 7 بوصفه قيمة تعليمية لا نتيجة نموذج. نحتاج إلى ثلاثة أوصاف منفصلة: ما القيمة؟ كم عنصرا عدديا؟ ما تنظيم محاوره؟ جواب 7 يخص الأول، وجواب عنصر واحد يخص الثاني؛ لا يكفي أي منهما لتحديد الثالث.
لا نقصد بالبعد هنا بعدا فيزيائيا كالطول أو الزمن. إنما نتحدث عن محاور تنظيم المصفوفة. أسماء تلك المحاور ومعنى العدد في مهمة حقيقية تحتاج إلى تعريف مستقل.
كيف تختلف ثلاثة أوعية للعدد نفسه؟
في التنظيم الأول نكتب 7 بلا محور. في الثاني نجعله عنصرا في متجه محورُه الوحيد طوله 1. في الثالث نضعه في مصفوفة صف واحد وعمود واحد؛ لها محوران بطولي 1 و 1. لم نضف أعدادا أخرى إلى أي تنظيم.
نكتب في الجدول وصف الشكل بكلمات واضحة، لأن الرقم 1 قد يعني عدد العناصر أو طول محور بعينه. التنظيم الصفري لا يملك محورا طوله صفر؛ لا يوجد فيه محور أصلا. أما المتجه المفرد فيملك محورا موجودا ذا طول واحد.
يعرض توثيق shape حالة القيمة المفردة وقائمة العنصر الواحد. [2] حسابنا للعدد 7 يشرح الفرق نفسه بقيمة اخترناها؛ ليس تقريرا لنتيجة استدعاء أو مقارنة كائنات تخزين.
| تنظيمنا للعدد 7 | عدد المحاور | أطوال المحاور | عدد القيم |
|---|---|---|---|
| بلا محور | 0 | لا أطوال محاور | 1 |
| متجه مفرد | 1 | 1 | 1 |
| صف وعمود | 2 | 1 ثم 1 | 1 |
لماذا لا يمحو الطول الواحد المحور؟
يمكن لمحور أن يكون موجودا ولا يحتوي إلا موضعا واحدا. وجود صف واحد في المصفوفة لا يحولها بذاته إلى قائمة بلا محور الصفوف؛ عدد المحاور ليس عدد أطوالها المختلفة ولا عدد الأطوال الأكبر من واحد.
في المثال، التنظيم ذو المحورين يحمل موضعا على محور الصفوف وموضعا على محور الأعمدة، رغم أن القيمة الوحيدة 7. أما المتجه فله موضع على محور واحد، والتنظيم الصفري لا يحتاج موضعا على محور.
لذلك لا نستدل من عنصر واحد على كيفية تحديد مكانه في كل تمثيل. كما لا نعد وجود الأقواس وحده برهانا على معنى محور الدفعة أو الميزات؛ نحن الذين نعلن معنى المحاور في مهمة البيانات.
ماذا نكتب في وصف المدخل أو المخرج؟
نقترح تسجيل عدد المحاور ثم أطوالها بترتيبها، بجانب القيمة إذا احتاجت المراجعة إليها. فإذا طلب الجزء التالي متجها مفردا، نعلن هذا الشرط، ولا نقبل أي تنظيم يحمل 7 بحجة أن العدد متساو.
وقد يسمح تصميم معين بتحويل مقصود بين هذه التنظيمات. نسمي التحويل والسبب بدلا من حذف المحاور لأنها تبدو زائدة في الرسم. نجاح تحويل شكل في تصميم واحد ليس ضمانا أن الشكل نفسه يلائم كل مستهلك.
لم ننفذ NumPy أو نموذجا ولم نفحص مشاركة ذاكرة أو نوعا عدديا. المثال يفسر لماذا يمكن لقيمة واحدة أن تدخل في أوعية ذات أبعاد مختلفة، ولماذا نحتاج إلى وصف المحاور مستقلا عن عدد العناصر.
المصادر ومتابعة القراءة
- NumPy: ndim (يفتح في نافذة جديدة)numpy.org
- NumPy: shape (يفتح في نافذة جديدة)numpy.org
أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.
