اذهب إلى المحتوى

السؤال

نشر

أقوم بقراءة عمودين من ملف CSV باستخدام pandas عبر readcsv() ، ثم أقوم بتخزين القيم في قاموس dictionary، تحتوي الأعمدة على سلاسل من الأرقام والحروف. توجد حالات تكون فيها الخلية فارغة. حسب ما أعتقد يجب أن تكون قيمة الخلايا الفارغة في القاموس None ولكن بدلًا من ذلك أجد أنها NaN.

أليست كلمة  None أفضل من ناحية وصف أن هذه الخلية فارغة عوضًا عن NaN التي تعبر عن Not a Number (حسب ما أعتقد)؟ ما الفرق بين None و NaN؟

Recommended Posts

  • 1
نشر

كما في التعليق السابق فإنه القيمة NaN تعامل كقيمة رقمية فلذلك يمكنك إجراء العملية الحسابية في وجودها بينما لا يمكنك في حالة وجود القيمة none 

لذلك يمكنك استخدام none في حالة تريد تعريف قيمة فارغة والكشف عنها بدالة ما لإجراء وظيفة معينة

بينما نستخدم NaN عندما نريد إجراء العمليات الحسابية في وجودها ويمكننا تفادي هذه القيمة باستخدام دالة من numpy تسمى nan_to_num أو sumnan مثلاً عند إرجاع مجموع مصفوفة يوجد بها قيمة NaN كالتالي

import numpy as np
  
in_arr = np.array([[2, 2, 2], [2, 2, np.nan]])
   
out_sum = np.nansum(in_arr) 
print ("مجموع المصفوفة: ", out_sum)
#الناتج
#مجموع المصفوفة 

  • 0
نشر (معدل)

السبب الرئيسي لاستخدام NaN بدلاً من None هو أنه يمكن تخزينه باستخدام نوع float64 لـ numpy ، بدلاً من نوع object الأقل كفاءة. حيث أن عملية تخزينه على شكل object سوف يجعله غير قابل للتعامل مع عمليات نمباي . بينما NaN يمكن استخدامها كقيمة عددية في العمليات الحسابية وأيضاً في العمليات التي يمكن تطبيقها باستخدام مكتبة نمباي.

تم التعديل في بواسطة Ali Haidar Ahmad

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...