كيفية الإصلاح: الكائن "numpy.float64" غير قابل للتكرار


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

 TypeError : 'numpy.float64' object is not iterable

يحدث هذا الخطأ عند محاولة إجراء عملية تكرارية بشكل متكرر على قيمة عائمة في NumPy، وهو أمر غير ممكن.

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

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

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

 import numpy as np

#define array of data
data = np. array ([1.3, 1.5, 1.6, 1.9, 2.2, 2.5])

#display array of data
print (data)

[1.3 1.5 1.6 1.9 2.2 2.5]

لنفترض الآن أننا نحاول طباعة مجموع كل قيمة في المصفوفة:

 #attempt to print the sum of every value
for i in data:
    print (sum(i))

TypeError : 'numpy.float64' object is not iterable

لقد تلقينا خطأ لأننا حاولنا بشكل متكرر (أخذ مجموع القيم) على كل قيمة عائمة فردية في المصفوفة.

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

ويمكننا تجنب هذا الخطأ بطريقتين:

1. قم بإجراء عملية غير تكرارية على كل قيمة في المصفوفة.

على سبيل المثال، يمكننا طباعة كل قيمة في المصفوفة:

 #print every value in array
for i in data:
    print (i)

1.3
1.5
1.6
1.9
2.2
2.5

نحن لا نتلقى خطأ لأننا لم نحاول التكرار على كل قيمة.

2. تنفيذ عملية تكرارية على مصفوفة متعددة الأبعاد.

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

 #create multi-dimensional array
data2 = np. array ([[1.3, 1.5], [1.6, 1.9], [2.2, 2.5]])

#print sum of each element in array
for i in data2:
    print (sum(i))

2.8
3.5
4.7

لم نحصل على خطأ لأنه من المنطقي استخدام الدالة sum() على مصفوفة متعددة الأبعاد.

على وجه الخصوص، إليك كيفية قيام NumPy بحساب مجموع القيم:

  • 1.3 + 1.5 = 2.8
  • 1.6 + 1.9 = 3.5
  • 2.2 + 2.5 = 4.7

مصادر إضافية

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

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

Add a Comment

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