وظيفة "isnotnan" في Numpy ، هل يمكن أن يكون هذا أكثر بيثونيا؟
سؤال
أحتاج إلى وظيفة تُرجع القيم غير النانية من صفيف. حاليا أفعل ذلك بهذه الطريقة:
>>> 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 في تجربتي.
فقط اعتقدت أنني سأرمي ذلك هناك للناس.
لا تنتمي إلى StackOverflow