Если вы хотите убедиться, что ваш код также работает в Windows, вам лучше использовать
cdef extern from "numpy/npy_math.h":
bint npy_isnan(double x)
, потому что в Windows, насколько мне известно, isnan называется _isnan и определен в float.h
См. Также здесь, например: https://github.com/astropy/astropy/pull/186
Если вы не хотите вводить numpy, вы также можете вставить эти директивы прекомпилятора в файл .c, который генерирует cython:
#if defined(WIN32) || defined(MS_WINDOWS)
#define USEMATH_DEFINES
#define isnan(x) _isnan(x)
#endif