Эффективная проверка значений, отличных от NaN, в массивах NumPy с использованием методов Pythonic

В NumPy есть функция numpy.isnan(), которая проверяет значения NaN (не число) в массиве. Если вы хотите создать более питонический способ проверки значений в массиве, отличных от NaN, вы можете использовать функцию numpy.isfinite().

Вот пример использования numpy.isfinite():

import numpy as np
arr = np.array([1.0, np.nan, 3.0, np.nan, 5.0])
# Check for non-NaN values using numpy.isfinite()
non_nan_values = arr[np.isfinite(arr)]
print(non_nan_values)

Выход:

[1. 3. 5.]

В приведенном выше коде мы начинаем с импорта модуля NumPy и создания массива arr, содержащего некоторые значения NaN.

Затем мы используем np.isfinite(arr)для создания логической маски, которая представляет собой массив той же формы, что и arr, где каждый элемент имеет значение True, если соответствующий элемент в arrне NaN, и Falseв противном случае.

Наконец, мы используем логическую маску np.isfinite(arr)для индексации исходного массива arrи извлечения значений, отличных от NaN.

При таком подходе вы можете получить значения, отличные от NaN, более питонским способом.