لمصفوفة، ord=1 يأخذ أكبر مجموع للقيم المطلقة في عمود؛ ord=inf يأخذ أكبر مجموع في صف. [1]
ثلاث خطوات لتعريف المقدار
لمصفوفة، ord=1 يأخذ أكبر مجموع للقيم المطلقة في عمود؛ ord=inf يأخذ أكبر مجموع في صف. [1]
تعرض norm خيارات مختلفة حسب ord، وتختار المصفوفة ثنائية البعد مسار معيار المصفوفة عند ترك axis دون تعيين. [1]
نثبت مصفوفة ذات ثلاثة صفوف وعمودين، ونقارن مقدارين مدعومين. نبدأ بالقيمة المطلقة لكل عنصر، ثم نجمع داخل العمود أو الصف، وأخيرًا نختار أكبر مجموع. الرقم 1 اسم الخيار هنا، ولا يعني اختيار الصف الأول.
نسمي العناصر aᵢⱼ، حيث i رقم الصف وj رقم العمود. في معيار1 نثبت العمود j ونجمع عبر الصفوف i، ثم نقارن مجاميع الأعمدة. في معيارinf نثبت الصف ونجمع عناصره، ثم نقارن مجاميع الصفوف. هذا ترتيب حساب، لا جمع لكل القيم مرة واحدة.
القيم في المثال مجرد أعداد اختيرت للشرح دون وحدات أو قياسات فعلية. لا نفسر الرقم الأكبر بأنه أداء أفضل أو خطأ أكبر في مهمة لم نحددها؛ نراجع أي مقدار طلبه الاستدعاء.
العمود الأكبر ليس الصف الأكبر
شغّلنا NumPy 2.3.5 وCPython 3.12.14 على A=[[2,−1],[4,6],[−3,1]] من float64. مجاميع الأعمدة المطلقة [9,8] تعطي معيار1 يساوي 9، ومجاميع الصفوف [3,10,4] تعطي معيارinf يساوي 10.
import numpy as np A=np.array([[2,-1],[4,6],[-3,1]],dtype=np.float64) print(np.linalg.norm(A,ord=1)) print(np.linalg.norm(A,ord=np.inf))
نحسب العمود الأول: |2|+|4|+|−3|=2+4+3=9. الثاني: |−1|+|6|+|1|=1+6+1=8. أكبر العددين 9، وهو الخرج المسجل مع ord=1. لا نضيف 9 و8 بعد هذه الخطوة ونسمي الناتج المعيار نفسه.
أما الصفوف فتعطي 2+1=3، و4+6=10، و3+1=4. أكبر هذه المجاميع 10، وهو الخرج المسجل مع ord=np.inf. كون الصف الثاني يحمل أكبر مجموع لا يجعله العمود المطلوب في الحساب الآخر.
جمع عناصر العمود بإشاراتها يعطي [3,6]، وليس [9,8]. وجمع كل القيم المطلقة يعطي 17؛ كلاهما يختلف عن معيار1 في المثال.
حذف القيمة المطلقة يسمح بإلغاء جزء من المجموع: العمود الأول بإشاراته 2+4−3=3، والثاني −1+6+1=6. أكبرهما 6؛ لم يطلب معيار1 هذه المجاميع الموقعة. والعنصر الأكبر المطلق منفردًا هو 6 أيضًا، لكنه ليس مجموع العمود 9.
وجمع الستة بعد أخذ القيمة المطلقة يعطينا 2+1+4+6+3+1=17. هذا مجموع صحيح لعملية أخرى. تشغيل norm على المتجه A.reshape(6) مع ord=1 أعطى 17 في فحصنا، فلا نحول مصفوفة إلى متجه ثم نقرأ الناتج بوصفه المعيار السابق.
نحتفظ بمجاميع الصفوف والأعمدة إلى جانب الناتج المختار. وجود العدد نفسه في حسابين قد يكون مصادفة؛ الذي يحدد المعنى هو العملية ومدخلها وشكلها. في مثالنا اتفقت قيمة العنصر الأكبر مع أكبر مجموع عمود موقع، رغم اختلاف التعريفين.
المنقول يبدل اتجاه الجمع
منقول A أعطى معيار1 يساوي 10 ومعيارinf يساوي 9. وقلب ترتيب زوج المحاور إلى axis=(1,0) أعطى 10 مع ord=1 بدل 9.
print(np.linalg.norm(A.T,ord=1)) print(np.linalg.norm(A.T,ord=np.inf)) print(np.linalg.norm(A,ord=1,axis=(0,1))) print(np.linalg.norm(A,ord=1,axis=(1,0)))
منقول المثال له صفان: [2,4,−3] و[−1,6,1]. أصبحت صفوف A الأصلية أعمدة في المنقول، فمجاميع أعمدته المطلقة [3,10,4] ومعيار1 له 10. ومجاميع صفوفه [9,8]، فمعيارinf له 9. لم يتغير أي عنصر، لكن اتجاه التجميع تبدل.
ليس في الحساب تعارض بين 9 و10. مقارنة معيار1 لـA بمعيار1 لمنقولها تقارن مجموعين باتجاهين مختلفين. أما معيار1 للمنقول فيوافق معيارinf للأصل في مثالنا، ويمكن تتبع هذا التطابق من مواقع العناصر دون حساب معكوس.
حددنا زوج محورين للمصفوفة نفسها. ترتيب (0,1) أعاد 9 مع ord=1، وترتيب (1,0) أعاد 10. هذه نتائج مسجلة لهذين الاستدعاءين على مصفوفة 3×2؛ لم نستبدل الزوج بعدد صحيح واحد أو نفحص دفعات متعددة المحاور.
في تحكم آخر ضربنا كل عناصر A في −3. صارت مجاميع الأعمدة المطلقة [27,24]، ومجاميع الصفوف [9,30,12]؛ الخرجان 27 و30. الإشارة السالبة تختفي بأخذ القيمة المطلقة، والمضاعف 3 يزيد كل مساهمة ثلاث مرات.
واستبدال كل عنصر بقيمته المطلقة أعاد الخرجين 9 و10. هذا تحكم يراجع أين تدخل الإشارة في العملية؛ لا نقول إن مصفوفة A ومصفوفة قيمها المطلقة تمثلان التحويل نفسه أو تعطيان النتائج نفسها في أي عملية أخرى.

مرجع مستقل ونطاق صغير
مرت 5840 مقارنة: ثماني مجموعات فحص للمثال و729 مصفوفة صغيرة مؤلفة. المرجع جمع القيم المطلقة بإحداثيات Python؛ لا ندعي ضمان دقة عام أو فحص دفعات أو قيم غير منتهية.
للحالات الشبكية اخترنا كل عنصر من {−2,0,3} في ست خانات بالشكل (3,2). لدينا 3⁶=729 حالة، تشمل المصفوفة الصفرية وتوزيعات سالبة ومختلطة. أضفنا المثال الأساسي حالة منفصلة، فيصبح إجمالي الحالات 730.
لكل حالة ثماني مجموعات تحقق: معيار1 مقابل أكبر مجموع عمود مطلق؛ معيارinf مقابل أكبر مجموع صف مطلق؛ معيارا المنقول؛ نتيجتا زوج المحاور بالترتيبين؛ معيار1 للمتجه المسطح؛ المعياران بعد الضرب في −3؛ المعياران بعد أخذ القيم المطلقة؛ ثم نوع النتائج وشكلها وثبات بايتات المدخل. الإجمالي 730×8=5840.
المرجع يقرأ إحداثيات العناصر ثم يجمع أعدادًا صحيحة في قوائم Python. يحسب مجموع كل عمود وصف ويمر على القائمة لاختيار أكبرها. لا يستخدم norm أو اختزالات NumPy لإنتاج المتوقع؛ استدعاءات المكتبة طرف المقارنة، لا المصدر الوحيد للجواب.
استعملنا مساواة عددية تامة لهذه الأعداد الصغيرة، وكانت النتائج القياسية من numpy.float64 وبشكل (). بقيت المصفوفة الأصلية float64 وبشكل (3,2)، وبقيت بايتاتها كما هي. هذا نطاق محدد؛ لا ننقل المساواة التامة إلى أعداد كبيرة أو مجاميع شديدة التفاوت.
لا نفحص مدخلات مركبة أو NaN أو inf أو مصفوفات فارغة أو دفعات أو keepdims أو خيارات ord الأخرى والمعيار الافتراضي. ولم نقس الأداء أو مشاركة التخزين أو أعداد التكييف أو مسألة تعظيم تحويل على كل المتجهات. سجلنا حساب المجاميع واتجاهها في الحالات المعلنة.
عند حفظ نتيجة، نكتب المصفوفة أو تعريف محوريها، وord وaxis إن عيّناه، ثم المقدار المحسوب. يستطيع القارئ بذلك إعادة 9 أو10 من نفس الستة أعداد، بدل التخمين من كلمة معيار وحدها.
| المصفوفة | معيار1 | معيارinf |
|---|---|---|
| A | 9 | 10 |
| Aᵀ | 10 | 9 |
| −3A | 27 | 30 |
| القيم المطلقة لـA | 9 | 10 |
للتوسع: أنواع المصفوفات.
المراجع
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
