كيفية إزالة قيم nan من مصفوفة numpy (3 طرق)
يمكنك استخدام الطرق التالية لإزالة قيم NaN من مصفوفة NumPy:
الطريقة الأولى: استخدام isnan()
new_data = data[~np. isnan (data)]
الطريقة الثانية: استخدام isfinite()
new_data = data[np. isfinite (data)]
الطريقة الثالثة: استخدام logic_not()
new_data = data[np. logical_not (np. isnan (data))]
كل من هذه الطرق تنتج نفس النتيجة، ولكن الطريقة الأولى هي الأقصر للدخول وبالتالي تميل إلى الاستخدام في أغلب الأحيان.
توضح الأمثلة التالية كيفية استخدام كل طريقة عمليًا.
مثال 1: إزالة قيم NaN باستخدام isnan()
يوضح التعليمة البرمجية التالية كيفية إزالة قيم NaN من مصفوفة NumPy باستخدام الدالة isnan() :
import numpy as np
#create array of data
data = np. array ([4, np.nan, 6, np.nan, 10, 11, 14, 19, 22])
#define new array of data with nan values removed
new_data = data[~np. isnan (data)]
#view new array
print (new_data)
[4. 6. 10. 11. 14. 19. 22.]
لاحظ أنه تمت إزالة قيمتي NaN بنجاح من مصفوفة NumPy.
تحافظ هذه الطريقة ببساطة على كافة عناصر المصفوفة التي ليست (~) قيم NaN.
مثال 2: إزالة قيم NaN باستخدام isfinite()
يوضح التعليمة البرمجية التالية كيفية إزالة قيم NaN من مصفوفة NumPy باستخدام الدالة isfinite() :
import numpy as np
#create array of data
data = np. array ([4, np.nan, 6, np.nan, 10, 11, 14, 19, 22])
#define new array of data with nan values removed
new_data = data[np. isfinite (data)]
#view new array
print (new_data)
[4. 6. 10. 11. 14. 19. 22.]
لاحظ أنه تمت إزالة قيمتي NaN بنجاح من مصفوفة NumPy.
تحافظ هذه الطريقة ببساطة على جميع عناصر المصفوفة ذات القيم المحدودة.
وبما أن قيم NaN ليست محدودة، فسيتم إزالتها من الجدول.
المثال 3: إزالة قيم NaN باستخدام logic_not()
يوضح التعليمة البرمجية التالية كيفية إزالة قيم NaN من مصفوفة NumPy باستخدام الدالة logic_not() :
import numpy as np
#create array of data
data = np. array ([4, np.nan, 6, np.nan, 10, 11, 14, 19, 22])
#define new array of data with nan values removed
new_data = data[np. logical_not (np. isnan (data))]
#view new array
print (new_data)
[4. 6. 10. 11. 14. 19. 22.]
لاحظ أنه تمت إزالة قيمتي NaN بنجاح من مصفوفة NumPy.
على الرغم من أن هذه الطريقة تعادل الطريقتين السابقتين، إلا أنها تتطلب المزيد من الكتابة وبالتالي لا يتم استخدامها كثيرًا.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ عمليات شائعة أخرى في بايثون:
الباندا: كيفية استبدال السلاسل الفارغة بـ NaN
الباندا: كيفية استبدال قيم NaN بسلسلة