Vergleichen von NumPy-Arrays, sodass NaNs gleich sind

Gibt es eine idiomatische Möglichkeit, zwei NumPy-Arrays zu vergleichen, die NaNs als gleich (aber nicht gleich) behandeln würden?andere als ein NaN).

Ich möchte zum Beispiel, dass die folgenden beiden Arrays gleich sind:

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

und die folgenden zwei Arrays zum Vergleichen ungleich:

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

Ich suche nach einer Methode, die ein skalares boolesches Ergebnis liefert.

Folgendes würde es tun:

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

aber es ist klobig und schafft all diese Zwischenarrays.

Gibt es einen Weg, der das Auge schont und das Gedächtnis besser nutzt?

P.S. Wenn es hilft, ist bekannt, dass die Arrays die gleiche Form und den gleichen d-Typ haben.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage