كيفية الإصلاح: يمكن تحويل المصفوفات ذات الحجم 1 فقط إلى كميات قياسية في بايثون


الخطأ الذي قد تواجهه عند استخدام بايثون هو:

 TypeError : only size-1 arrays can be converted to Python scalars

يحدث هذا الخطأ غالبًا عند محاولة استخدام np.int() لتحويل مصفوفة NumPy من القيم العائمة إلى مصفوفة من القيم الصحيحة.

ومع ذلك، تقبل هذه الدالة قيمة واحدة فقط بدلاً من مجموعة من القيم.

بدلاً من ذلك، يجب عليك استخدام x.astype(int) لتحويل مصفوفة NumPy من القيم العائمة إلى مصفوفة من القيم الصحيحة، لأن هذه الوظيفة قادرة على قبول مصفوفة.

يوضح المثال التالي كيفية تصحيح هذا الخطأ عمليًا.

كيفية إعادة إنتاج الخطأ

لنفترض أننا أنشأنا مجموعة NumPy التالية من القيم العائمة:

 import numpy as np

#create NumPy array of float values
x = np. array ([3, 4.5, 6, 7.7, 9.2, 10, 12, 14.1, 15])

لنفترض الآن أننا نحاول تحويل هذه المصفوفة من القيم العائمة إلى مصفوفة من القيم الصحيحة:

 #attempt to convert array to integer values
n.p. int (x)

TypeError : only size-1 arrays can be converted to Python scalars 

نتلقى خطأ TypeError لأن الدالة np.int() تقبل فقط قيمًا مفردة، وليس مجموعة من القيم.

كيفية إصلاح الخطأ

من أجل تحويل مصفوفة NumPy من القيم العائمة إلى قيم صحيحة، يمكننا استخدام الكود التالي:

 #convert array of float values to integer values
x. astype (int)

array([ 3, 4, 6, 7, 9, 10, 12, 14, 15])

لاحظ أنه تم تحويل مصفوفة القيم إلى أعداد صحيحة ولا نتلقى أي أخطاء لأن الدالة astype() قادرة على التعامل مع مصفوفة من القيم.

ملاحظة : يمكنك العثور على الوثائق الكاملة للدالة astype() هنا .

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية إصلاح الأخطاء الشائعة الأخرى في بايثون:

كيفية إصلاح KeyError في الباندا
كيفية الإصلاح: خطأ القيمة: غير قادر على تحويل float NaN إلى int
كيفية الإصلاح: خطأ في القيمة: لا يمكن بث المعاملات بالأشكال

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *