С сравнение numpy массивов, содержащих NaN
def eq(a, b):
return np.all((a == b) | (np.isnan(a) & np.isnan(b)))
Для сравнения комплексных чисел просто проверьте равенство действительной и мнимой частей. Например:
a = np.array([1+2j, 3+4j, np.nan+6j])
b = np.array([1+2j, 3+4j, np.nan+5j])
eq(a.real, b.real) & eq(a.imag, b.imag)
False
Редактировать: Или вы можете использовать np.allclose(a.real, b.real, equal_nan=True) & np.allclose(a.imag, b.imag, equal_nan=True)
.