كيفية الإصلاح: يجب أن تحتوي جميع صفائف الإدخال على نفس عدد الأبعاد
الخطأ الذي قد تواجهه عند استخدام NumPy هو:
ValueError : all the input arrays must have same number of dimensions
يحدث هذا الخطأ عند محاولة توصيل صفيفتين NumPy بأبعاد مختلفة.
يوضح المثال التالي كيفية تصحيح هذا الخطأ عمليًا.
كيفية إعادة إنتاج الخطأ
لنفترض أن لدينا المصفوفتين NumPy التاليتين:
import numpy as np #create first array array1 = np. array ([[1, 2], [3, 4], [5,6], [7,8]]) print (array1) [[1 2] [3 4] [5 6] [7 8]] #create second array array2 = np. array ([9,10,11,12]) print (array2) [9 10 11 12]
لنفترض الآن أننا نحاول استخدام الدالة concatenate() لدمج المصفوفتين في مصفوفة واحدة:
#attempt to concatenate the two arrays
n.p. concatenate ([array1, array2])
ValueError : all the input arrays must have same number of dimensions, but the array at
index 0 has 2 dimension(s) and the array at index 1 has 1 dimension(s)
نتلقى خطأ ValueError لأن الصفيفين لهما أبعاد مختلفة.
كيفية اصلاح الخطأ
يمكننا استخدام طريقتين لإصلاح هذا الخطأ.
الطريقة الأولى: استخدم np.column_stack
إحدى الطرق لربط الجدولين مع تجنب الأخطاء هي استخدام الدالة column_stack() كما يلي:
n.p. column_stack ((array1, array2))
array([[ 1, 2, 9],
[3, 4, 10],
[5, 6, 11],
[7, 8, 12]])
لاحظ أننا قادرون على ربط الصفيفين بنجاح دون أي أخطاء.
الطريقة الثانية: استخدم np.c_
يمكننا أيضًا ربط الجدولين مع تجنب الأخطاء باستخدام الدالة np.c_ كما يلي:
n.p. c_ [array1, array2]
array([[ 1, 2, 9],
[3, 4, 10],
[5, 6, 11],
[7, 8, 12]])
لاحظ أن هذه الدالة تُرجع نفس النتيجة تمامًا مثل الطريقة السابقة.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية إصلاح الأخطاء الشائعة الأخرى في بايثون:
كيفية إصلاح KeyError في الباندا
كيفية الإصلاح: خطأ القيمة: غير قادر على تحويل float NaN إلى int
كيفية الإصلاح: خطأ في القيمة: لا يمكن بث المعاملات بالأشكال