Сравнение массивов NumPy, чтобы NaN сравнивались равнымиPython

Программы на Python
Ответить
Anonymous
 Сравнение массивов NumPy, чтобы NaN сравнивались равными

Сообщение Anonymous »

Есть ли идиоматический способ сравнения двух массивов NumPy, который рассматривал бы значения NaN как равные друг другу (но не равные чему-либо кроме, кроме NaN).

Например, я хочу, чтобы следующие два массива сравнивались равными:

Код: Выделить всё

np.array([1.0, np.NAN, 2.0])
np.array([1.0, np.NAN, 2.0])
и следующие два массива для сравнения неравны:

Код: Выделить всё

np.array([1.0, np.NAN, 2.0])
np.array([1.0, 0.0, 2.0])
Я ищу метод, который давал бы скалярный логический результат.

Это можно сделать следующим образом:

Код: Выделить всё

np.all((a == b) | (np.isnan(a) & np.isnan(b)))
но он неуклюж и создает все эти промежуточные массивы.

Есть ли способ, который приятнее для глаз и позволяет лучше использовать память?

P.S. Если это поможет, известно, что массивы имеют одинаковую форму и тип d.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»