Is there an idiomatic way to compare two NumPy arrays that would treat NaNs as being equal to each other (but not equal to anything other than a NaN).
For e
If you really care about memory use (e.g. have very large arrays), then you should use numexpr and the following expression will work for you:
np.all(numexpr.evaluate('(a==b)|((a!=a)&(b!=b))'))
I've tested it on very big arrays with length of 3e8, and the code has the same performance on my machine as
np.all(a==b)
and uses the same amount of memory