"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكن استخدام \'np.newaxis\' الخاص بـ NumPy لتمكين البث في عمليات المصفوفة؟

كيف يمكن استخدام \'np.newaxis\' الخاص بـ NumPy لتمكين البث في عمليات المصفوفة؟

تم النشر بتاريخ 2024-11-08
تصفح:999

How can NumPy\'s \'np.newaxis\' be used to enable broadcasting in array operations?

ما هو "np.newaxis" الخاص بـ NumPy وكيفية استخدامه

فهم "np.newaxis"

NumPy's 'np.newaxis'، والمعروف أيضًا باسم 'None'، هو فهرس زائف يستخدم لإضافة محور مؤقتًا إلى مصفوفة. عند استخدامه مرة واحدة، فإنه يزيد من أبعاد المصفوفة بمقدار واحد. على سبيل المثال، تصبح المصفوفة أحادية الأبعاد مصفوفة ثنائية الأبعاد، والمصفوفة ثنائية الأبعاد تصبح مصفوفة ثلاثية الأبعاد، وهكذا.

سيناريوهات لاستخدام 'np.newaxis'

السيناريو 1: إنشاء متجهات صف/عمود من مصفوفات أحادية الأبعاد

يمكن استخدام 'np.newaxis' لتحويل مصفوفة أحادية الأبعاد بشكل صريح إلى متجه صف (عن طريق إدراج محور على طول البعد الأول) أو متجه عمود (عن طريق إدراج محور على طول البعد الثاني).

السيناريو 2: تمكين NumPy Broadcasting

يصبح 'np.newaxis' مفيدًا عند إجراء عمليات تتضمن بث NumPy. على سبيل المثال، فكر في إضافة صفيفين بالأشكال '(5،)' و'(3،)'. سيثير NumPy خطأ بسبب الأشكال غير المتوافقة. باستخدام 'np.newaxis' لزيادة أبعاد مصفوفة واحدة، يمكن تمكين البث لتنفيذ العملية.

السيناريو 3: ترقية المصفوفات إلى أبعاد أعلى يمكن استخدام 'np.newaxis' عدة مرات لترقية المصفوفات إلى أبعاد أعلى، وهو ما قد يكون ضروريًا للمصفوفات ذات الترتيب الأعلى (الموترات).

أمثلة الاستخدام

إلى استخدم "np.newaxis"، وأدخله في تعبير التقطيع. على سبيل المثال:

# إنشاء متجه صف من مصفوفة أحادية الأبعاد س = np.arange(4) x_row_vector = x[np.newaxis, :]
# Create a row vector from a 1D array
x = np.arange(4)
x_row_vector = x[np.newaxis, :]

# أضف مصفوفة أحادية الأبعاد إلى مصفوفة ثنائية الأبعاد x1 = np.array([1, 2, 3, 4, 5]) x2 = np.array([5، 4، 3]) x1_new = x1[:, np.newaxis] # أدخل محورًا للبث result = x1_new x2
# Add a 1D array to a 2D array
x1 = np.array([1, 2, 3, 4, 5])
x2 = np.array([5, 4, 3])
x1_new = x1[:, np.newaxis]    # Insert axis for broadcasting
result = x1_new   x2
البديل: 'np.expand_dims'

'np.expand_dims' هو بديل لـ 'np.newaxis' الذي يوفر 'محورًا' بديهيًا kwarg لتحديد نقطة الإدراج للمحور الجديد.

يضيف 'np.newaxis' محورًا مؤقتًا، على عكس 'np.reshape'. الذي يعيد تشكيل المصفوفة إلى تخطيط جديد.

'np.newaxis' و'None' كائنان متكافئان.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3