Ваш подход верен, но ваше предположение о том, что они непонятные C API, нет.NPY_FLOAT - это просто целочисленная константа, однако для публикуемых вами функций требуется, чтобы параметр типа был позиционером для PyArray_Descr struct .
, чтобы получить описание типа.из простого типа вы можете вызывать PyArray_DescrFromType, чтобы ваш вызов мог выглядеть следующим образом:
PyArrayObject* float_array = (PyArrayObject*)PyArray_FromAny(input,PyArray_DescrFromType(NPY_FLOAT64), 0,0, flags);
... с флагами, которые являются любыми флагами, которые вы считаете значимыми при конвертации, - пожалуйста, взгляните на простой API,как для правильного вызова API, так и для значения различных флагов и значений.