"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > متى يتم تخصيص ذاكرة إضافية في NumPy Array Assignment؟

متى يتم تخصيص ذاكرة إضافية في NumPy Array Assignment؟

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

When Is Additional Memory Allocated in NumPy Array Assignment?

تعيين مصفوفة Numpy: اختلافات تخصيص الذاكرة

في NumPy، هناك ثلاث طرق شائعة لتعيين قيم لمصفوفة:

  • ب = أ
  • ب[:] = A
  • numpy.copy(B، A)

B = A

عندما استخدم B = A، فأنت لا تقوم بإنشاء مصفوفة جديدة. بدلاً من ذلك، تقوم بربط اسم جديد (B) بالمصفوفة الموجودة (A). ونتيجة لذلك، فإن أي تعديلات يتم إجراؤها على مصفوفة واحدة سوف تنعكس في المصفوفة الأخرى.

B[:] = A

ينشئ هذا البناء مصفوفة جديدة B مع نفس الأبعاد والقيم مثل A. لم يتم تعديل المصفوفة الأصلية A. تتطلب هذه الطريقة تخصيصًا أقل للذاكرة مقارنة بـ numpy.copy.

numpy.copy(B, A)

هذه الطريقة غير قانونية كما كتبتها. يجب أن يكون B = numpy.copy(A). numpy.copy ينشئ مصفوفة جديدة B بنفس الأبعاد والقيم مثل A. تتطلب هذه الطريقة تخصيصًا أكبر للذاكرة مقارنة بـ B[:] = A لأنها تنشئ نسخة فعلية منفصلة من البيانات من المصفوفة الأصلية.

متى يتم تخصيص الذاكرة الإضافية؟

يتم تخصيص ذاكرة إضافية عند استخدام numpy.copy لإنشاء نسخة فعلية جديدة من المصفوفة. وذلك لأنه يخصص كتلة جديدة متجاورة من الذاكرة للبيانات المنسوخة.

متى لا يتم تخصيص الذاكرة؟

لا يتم تخصيص الذاكرة عند استخدام B = A لأنك تقوم ببساطة بإعادة تسمية المصفوفة الأصلية. لا يتم تخصيص الذاكرة أيضًا عند استخدام B[:] = A لأنها تعيد استخدام نفس موقع الذاكرة مثل المصفوفة الأصلية.

بيان الافراج أعيد طبع هذه المقالة على: 1729560494 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3