وظيفة "isnotnan" في Numpy ، هل يمكن أن يكون هذا أكثر بيثونيا؟

StackOverflow https://stackoverflow.com/questions/2831516

  •  26-09-2019
  •  | 
  •  

سؤال

أحتاج إلى وظيفة تُرجع القيم غير النانية من صفيف. حاليا أفعل ذلك بهذه الطريقة:

>>> a = np.array([np.nan, 1, 2])
>>> a
array([ NaN,   1.,   2.])

>>> np.invert(np.isnan(a))
array([False,  True,  True], dtype=bool)

>>> a[np.invert(np.isnan(a))]
array([ 1.,  2.])

بيثون: 2.6.4 نومبي: 1.3.0

يرجى المشاركة إذا كنت تعرف طريقة أفضل ، شكرًا لك

هل كانت مفيدة؟

المحلول

a = a[~np.isnan(a)]

نصائح أخرى

أنت تختبر حاليًا أي شيء ليس NAN و MTRW لديه الطريقة الصحيحة للقيام بذلك. إذا كنت مهتمًا باختبار الأرقام المحدودة (ليس نانًا وليس INF) فأنت لا تحتاج إلى انعكاس ويمكنك استخدامها:

np.isfinite(a)

المزيد من الأثرية والمواطنة ، وقراءة سهلة ، وغالبًا عندما تريد تجنب NAN ، فأنت تريد أيضًا تجنب INF في تجربتي.

فقط اعتقدت أنني سأرمي ذلك هناك للناس.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top