"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > هل المعلمة -1 في Numpy's Reshape() هي حرف بدل أم قيمة ثابتة؟

هل المعلمة -1 في Numpy's Reshape() هي حرف بدل أم قيمة ثابتة؟

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

Is the -1 Parameter in Numpy\'s Reshape() a Wildcard or a Fixed Value?

فهم دور -1 في Numpy Reshape

في Numpy، تسمح طريقة reshape () بتحويل أشكال المصفوفة. عند العمل مع مصفوفات ثنائية الأبعاد، من الممكن إعادة تشكيلها إلى مصفوفات أحادية الأبعاد باستخدام reshape(-1). على سبيل المثال:

import numpy as np

a = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
a.reshape(-1)
# Output: array([[1, 2, 3, 4, 5, 6, 7, 8]])

عادةً ما يشير المصفوفة [-1] إلى العنصر الأخير في المصفوفة. ومع ذلك، في سياق reshape(-1)، فإن هذا يحمل معنى مختلفًا.

المعلمة -1 في إعادة الشكل

المعلمة -1 في إعادة الشكل (- 1) بمثابة البعد البدل. يشير إلى أنه يجب تحديد البعد المقابل للشكل الجديد تلقائيًا. ويتم ذلك عن طريق استيفاء المعيار المتمثل في أن الشكل الجديد يجب أن يتماشى مع شكل المصفوفة الأصلي، مع الحفاظ على بعده الخطي.

يسمح Numpy باستخدام -1 في إحدى معلمات الشكل، مما يتيح تحديد أبعاد غير معروفة . على سبيل المثال، (-1، 3) أو (2، -1) هي أشكال صالحة، في حين أن (-1، -1) ليست كذلك.

أمثلة على إعادة الشكل (-1)

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

z = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11] ، 12]]) z.shape # (3, 4)
z = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
z.shape  # (3, 4)
إعادة التشكيل باستخدام (-1):

z.reshape(-1) # الإخراج: المصفوفة([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) # الشكل الجديد: (12,)
z = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
z.shape  # (3, 4)
إعادة التشكيل باستخدام (-1, 1) (ميزة فردية):

z.reshape(-1, 1) # الإخراج: المصفوفة([[ 1]، [ 2]، [ 3]، [ 4]، [ 5]، [ 6]، [ 7]، [ 8]، [ 9]، [10]، # [11]، [12]]) # الشكل الجديد: (12, 1)
z = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
z.shape  # (3, 4)
إعادة التشكيل باستخدام (-1, 2) (صف واحد):

z.reshape(1, -1) # الإخراج: المصفوفة([[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]) # الشكل الجديد: (1, 12)
z = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
z.shape  # (3, 4)
إعادة التشكيل باستخدام (2, -1):

z.reshape(2, -1) # الإخراج: المصفوفة([[ 1, 2, 3, 4, 5, 6], [ 7, 8, 9, 10, 11, 12]]) # الشكل الجديد: (2, 6)
z = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
z.shape  # (3, 4)
إعادة التشكيل باستخدام (3, -1) (الشكل الأصلي):

z.reshape(3, -1) # الإخراج: المصفوفة([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) # الشكل الجديد: (3، 4)
z = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
z.shape  # (3, 4)
لاحظ أن تحديد كلا البعدين على أنه -1، أي (-1، -1)، سيؤدي إلى خطأ.

من خلال فهم الدلالة من -1 في reshape()، يمكن للمطورين تحويل أشكال المصفوفات بشكل فعال لتلبية احتياجات معالجة البيانات الخاصة بهم في Numpy.

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

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

Copyright© 2022 湘ICP备2022001581号-3