Another simpler option would be to skip the ::1 flag in the Cython functions, so the function can handle all sorts of memory ordering. With this you could skip the np.ascontiguousarray calls.