Функциональность "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.])
Python: 2.6.4 Numpy: 1.3.0
Пожалуйста, поделитесь, если вы знаете лучший способ, спасибо
Решение
a = a[~np.isnan(a)]
Другие советы
Вы в настоящее время тестируете на все, что не нан, а MTRW имеет правильный способ сделать это. Если вы заинтересованы в тестировании конечных чисел (не нан и не IF), то вам не нужна инверсия и может использовать:
np.isfinite(a)
Подробнее Pythonic и родной, легкий прочитанный и часто, когда вы хотите избежать NAN, вы также хотите избежать INF в моем опыте.
Просто думал, что я буду бросить это там для людей.
Не связан с StackOverflow