كيفية الإصلاح: لا يحتوي الكائن "numpy.ndarray" على السمة "index".
الخطأ الذي قد تواجهه عند استخدام NumPy هو:
AttributeError : 'numpy.ndarray' object has no attribute 'index'
يحدث هذا الخطأ عندما تحاول استخدام الدالة Index() على مصفوفة NumPy، والتي لا تتوفر لها سمات فهرس.
يوضح المثال التالي كيفية حل هذا الخطأ عمليًا.
كيفية إعادة إنتاج الخطأ
لنفترض أن لدينا مجموعة NumPy التالية:
import numpy as np #create NumPy array x = np. array ([4, 7, 3, 1, 5, 9, 9, 15, 9, 18])
يمكننا استخدام الصيغة التالية للعثور على الحد الأدنى والحد الأقصى للقيم في المصفوفة:
#find minimum and maximum values of array
min_val = np. min (x)
max_val = np. max (x)
#print minimum and maximum values
print (min_val, max_val)
1 18
لنفترض الآن أننا نحاول العثور على موضع الفهرس للقيم الدنيا والقصوى في المصفوفة:
#attempt to print index position of minimum value
x. index (min_val)
AttributeError : 'numpy.ndarray' object has no attribute 'index'
لقد تلقينا خطأ لأنه لا يمكننا تطبيق دالة الفهرس () على مصفوفة NumPy.
كيفية حل الخطأ
للعثور على موضع الفهرس للقيم الدنيا والقصوى في مصفوفة NumPy، يمكننا استخدام الدالة NumPywhere () :
#find index position of minimum value
n.p. where (x == min_val)
(array([3]),)
#find index position of maximum value
n.p. where (x == max_val)
(array([9]),)
ومن النتيجة يمكننا أن نرى:
- الحد الأدنى لقيمة المصفوفة يقع في موضع الفهرس 3 .
- الحد الأقصى لقيمة المصفوفة يقع في موضع الفهرس 9 .
يمكننا استخدام نفس الصيغة العامة للعثور على موضع الفهرس لأي قيمة في مصفوفة NumPy.
على سبيل المثال، يمكننا استخدام الصيغة التالية للعثور على مواضع الفهرس التي تساوي القيمة 9 في مصفوفة NumPy:
#find index positions that are equal to the value 9
n.p. where (x == 9 )
(array([5, 6, 8]),)
من النتيجة يمكننا أن نرى أن القيم في مواضع الفهرس 5 و 6 و 8 كلها تساوي 9 .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية إصلاح الأخطاء الشائعة الأخرى في بايثون:
كيفية إصلاح KeyError في الباندا
كيفية الإصلاح: خطأ القيمة: غير قادر على تحويل float NaN إلى int
كيفية الإصلاح: خطأ في القيمة: لا يمكن بث المعاملات بالأشكال