Porównywanie tablic NumPy, aby porównywać NaNs

Czy istnieje idiomatyczny sposób porównywania dwóch tablic NumPy, które traktowałyby NaN jako równe sobie (ale nie równe niczemuinny niż NaN).

Na przykład chcę, aby następujące dwie tablice były równe:

np.array([1.0, np.NAN, 2.0])
np.array([1.0, np.NAN, 2.0])

oraz następujące dwie tablice do porównania nierówności:

np.array([1.0, np.NAN, 2.0])
np.array([1.0, 0.0, 2.0])

Szukam metody, która wytworzyłaby skalarny wynik boolowski.

Zrobiłoby to:

np.all((a == b) | (np.isnan(a) & np.isnan(b)))

ale jest niezgrabny i tworzy wszystkie te pośrednie tablice.

Czy jest sposób, który jest łatwiejszy dla oka i lepiej wykorzystuje pamięć?

P.S. Jeśli to pomoże, tablice mają taki sam kształt i typ.

questionAnswers(4)

yourAnswerToTheQuestion