0 محمد عاطف17 نشر 15 مارس أرسل تقرير نشر 15 مارس وعليكم السلام ورحمة الله وبركاته. هذا التخذير يظهر لك بسبب استخدامك لخيار use_inf_as_na في مكتبة pandas وهذا الخيار يستخدم لتعيين القيم اللانهائية (inf) كقيم مفقودة (NaN).و هذا الخيار أصبح قديم وسيتم إزالته في الإصدارات المستقبلية من pandas. لحل هذه المشكلة يمكنك تحويل القيم اللانهائية إلى NaN بنفسك قبل إجراء أى عمليات عليها. df.replace([np.inf, -np.inf], np.nan, inplace=True) 1 اقتباس
0 Ali Ahmed55 نشر 15 مارس الكاتب أرسل تقرير نشر 15 مارس بتاريخ 3 دقائق مضت قال محمد عاطف17: وعليكم السلام ورحمة الله وبركاته. هذا التخذير يظهر لك بسبب استخدامك لخيار use_inf_as_na في مكتبة pandas وهذا الخيار يستخدم لتعيين القيم اللانهائية (inf) كقيم مفقودة (NaN).و هذا الخيار أصبح قديم وسيتم إزالته في الإصدارات المستقبلية من pandas. لحل هذه المشكلة يمكنك تحويل القيم اللانهائية إلى NaN بنفسك قبل إجراء أى عمليات عليها. df.replace([np.inf, -np.inf], np.nan, inplace=True) ايوه بس ده مش كده هياثر علي البيانات ؟ 1 اقتباس
0 محمد عاطف17 نشر 15 مارس أرسل تقرير نشر 15 مارس بتاريخ الآن قال Ali Ahmed55: ايوه بس ده مش كده هياثر علي البيانات ؟ نعم صحيح تعديل القيم من الممكن أن يؤثر على البيانات ولكنك انت بالفعل قد قمت بتفعيل هذا الخيار لهذا يحدث لك هذا التحذير . هل تستخدم اى من السطرين التاليين في الكود لديك ؟ : pd.set_option('use_inf_as_na', True) df.fillna(value=np.nan, use_inf_as_na=True) إذا كنت تستخدم إحدى هذين الأمرين في الكود فهذا هو سبب التحذير و الكود الذي أرفقته لك يفعل نفس الشئ السابق أى أنني لم أضيف أى شئ جديد لديك في الكود . أى أنه في الكود لديك تم تفعيل خيار تحويل القيم اللانهائية إلى NaN . إذا لم ترد ذلك يجب عليك البحث عن أى من السطرين السابقين وخذفهم. 1 اقتباس
0 Ali Ahmed55 نشر 15 مارس الكاتب أرسل تقرير نشر 15 مارس بتاريخ 1 دقيقة مضت قال محمد عاطف17: pd.set_option('use_inf_as_na', True) df.fillna(value=np.nan, use_inf_as_na=True) الا والله ده الكود بتاعي import matplotlib.pyplot as plt import seaborn as sns # Assuming you have a DataFrame called 'data' # Set the figure size for better visualization plt.figure(figsize=(12, 6)) # Plotting the distribution of 'x_1' with Kernel Density Estimate (KDE) plt.subplot(1, 3, 1) sns.histplot(data['x_1'], kde=True) plt.title('Distribution of x_1') # Plotting the distribution of 'y_1' with KDE plt.subplot(1, 3, 2) sns.histplot(data['y_1'], kde=True) plt.title('Distribution of y_1') # Plotting the distribution of 'z_1' with KDE plt.subplot(1, 3, 3) sns.histplot(data['z_1'], kde=True) plt.title('Distribution of z_1') # Adjusts the layout to prevent overlapping of plots plt.tight_layout() # Display all plots plt.show() 2 اقتباس
0 ياسر مسكين نشر 15 مارس أرسل تقرير نشر 15 مارس بتاريخ 33 دقائق مضت قال Ali Ahmed55: الا والله ده الكود بتاعي import matplotlib.pyplot as plt import seaborn as sns # Assuming you have a DataFrame called 'data' # Set the figure size for better visualization plt.figure(figsize=(12, 6)) # Plotting the distribution of 'x_1' with Kernel Density Estimate (KDE) plt.subplot(1, 3, 1) sns.histplot(data['x_1'], kde=True) plt.title('Distribution of x_1') # Plotting the distribution of 'y_1' with KDE plt.subplot(1, 3, 2) sns.histplot(data['y_1'], kde=True) plt.title('Distribution of y_1') # Plotting the distribution of 'z_1' with KDE plt.subplot(1, 3, 3) sns.histplot(data['z_1'], kde=True) plt.title('Distribution of z_1') # Adjusts the layout to prevent overlapping of plots plt.tight_layout() # Display all plots plt.show() المشكلة تظهر من مكتبة seaborn وهذه التحذيرات تتعلق باستخدام خاصية use_inf_as_na التي أصبحت مهجورة (deprecated) في pandas وستتم إزالتها في إصدارات مستقبلية. والخاصية use_inf_as_na تعامل القيم اللانهائية (Infinity) كقيم مفقودة (NaN) أي عندما تستخدم seaborn للرسم البياني، فإنه يستخدم هذه الخاصية داخليا، مما يسبب ظهور هذه التحذيرات. لإزالة هذه التحذيرات وضمان استقرار الكود في المستقبل، قم بإضافة السطرين التاليين في بداية الكود قبل عملية الرسم البياني: import numpy as np data = data.replace([np.inf, -np.inf], np.nan) ليصبح الكود النهائي كالتالي: import matplotlib.pyplot as plt import seaborn as sns import numpy as np import pandas as pd data = data.replace([np.inf, -np.inf], np.nan) plt.figure(figsize=(12, 6)) plt.subplot(1, 3, 1) sns.histplot(data['x_1'], kde=True) plt.title('Distribution of x_1') plt.subplot(1, 3, 2) sns.histplot(data['y_1'], kde=True) plt.title('Distribution of y_1') plt.subplot(1, 3, 3) sns.histplot(data['z_1'], kde=True) plt.title('Distribution of z_1') # Adjusts the layout to prevent overlapping of plots plt.tight_layout() # Display all plots plt.show() 1 اقتباس
0 محمد عاطف17 نشر 15 مارس أرسل تقرير نشر 15 مارس بتاريخ 49 دقائق مضت قال Ali Ahmed55: الا والله ده الكود بتاعي import matplotlib.pyplot as plt import seaborn as sns # Assuming you have a DataFrame called 'data' # Set the figure size for better visualization plt.figure(figsize=(12, 6)) # Plotting the distribution of 'x_1' with Kernel Density Estimate (KDE) plt.subplot(1, 3, 1) sns.histplot(data['x_1'], kde=True) plt.title('Distribution of x_1') # Plotting the distribution of 'y_1' with KDE plt.subplot(1, 3, 2) sns.histplot(data['y_1'], kde=True) plt.title('Distribution of y_1') # Plotting the distribution of 'z_1' with KDE plt.subplot(1, 3, 3) sns.histplot(data['z_1'], kde=True) plt.title('Distribution of z_1') # Adjusts the layout to prevent overlapping of plots plt.tight_layout() # Display all plots plt.show() الجزء الذي يسبب التحذير هو استخدام sns.histplot حيث عندما تقوم seaborn بمعالجة البيانات، فإنها تستخدم pandas في الخلفية. و إذا كانت البيانات لديك تحتوي على قيم لانهائية (inf أو -inf)، فإن pandas يحاول التعامل معها باستخدام الخيار use_inf_as_na، والذي أصبح قديما ويبدوا أن البيانات لديك بها قيم لانهائية. ويتم تحويل القيم اللانهائية إلى NAN لأن القيم اللانهائية (inf) يمكن أن تسبب مشاكل في الحسابات الإحصائية أو الرسوم البيانية لأنها لا تمثل قيما عددية حقيقية. فمثلا إذا كنت تحسب المتوسط أو الانحراف المعياري لعمود يحتوي على inf فقد تحصل على نتائج غير صحيحة. 1 اقتباس
0 Ali Ahmed55 نشر 16 مارس الكاتب أرسل تقرير نشر 16 مارس بتاريخ 14 ساعة قال محمد عاطف17: القيم اللانهائية (inf طيب القيمه دي عبار عن اي ؟ وهل تعتبر outliers ؟ 1 اقتباس
0 محمد عاطف17 نشر 16 مارس أرسل تقرير نشر 16 مارس بتاريخ 2 دقائق مضت قال Ali Ahmed55: طيب القيمه دي عبار عن اي ؟ وهل تعتبر outliers ؟ القيمة inf أو -inf للقيم السالبة هي اختصار لكلمة "infinity" وتعني ما لا نهاية في الرياضيات وهذا هو رمزها ∞ . وتأتي تلك القيمة في الرياضيات من عدة حالات فمثلا لو قمنا بالقسمة على صفر فالناتج سيكون ما لا نهاية . أو ضرب أى رقم في عدد ما لانهاية أو log للرقم 0 : import numpy as np print(1 / 0) # خطأ رياضي print(np.log(0)) # -inf print(np.exp(1000)) ونعم إن inf تعتبر قيمة شاذة (Outliers) ولكنها نوع خاص من القيم الشاذة. حيث هي دائما ليست قيمة شاذة . فمثلا إذا كنت تعمل في مجال يتعامل مع قيم ضخمة جدا مثل الفيزياء النظرية أو مجال يوجد به حسابات وأرقام كبيرة فهنا inf لن تعتبر قيمة شاذة لأن الحسابات لديك من المتوقع أن يظهر بها ما لا نهاية . أما إذا لم تكن inf منطقية في الحالة الذي تعمل فيه مثلا حساب رواتب أو درجات أو في الطب مثل قياس السكر وغيرها . فهنا بالطبع تعتبر قيمة شاذة لأنه ليس من الطبيعي أن تصل تلك الأرقام إلى قيمة ما لا نهاية فلا يوجد مرتب قيمته ما لانهاية ولا يوجد نسبة السكر في الدم ما لانهاية .وهنا في هذه الحالة يجب حذف القيمة لأنها قيمة شاذة. اقتباس
السؤال
Ali Ahmed55
السلام عليكم
هو اي التحذير ده ؟
9 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.