> To make this work, the Cython code would need to take a float array

I thought that was obvious... :-) Is there a reason not to do so?