2016-03-28 2 views
1

Numpy C API содержит функцию PyUFunc_FromFuncAndData для создания структуры данных PyUFuncObject. Эта функция принимает аргумент char [] types, который определяет встроенные типы аргументов функции (int, float и т. Д.). Но тип номера для пользовательского типа данных - это int, а не char. Если я использую C-API для создания пользовательского (определяемого пользователем) типа данных, как мне создать ufunc, который работает с этим типом данных?Как создать Numpy ufunc над пользовательскими типами данных?

ответ

1

Это объяснение не указано в документации Numpy, но there are examples around.

int my_type_num = PyArray_RegisterDataType(&my_custom_type_descr); 

PyUFuncObject* ufunc = (PyUFuncObject*)PyUFunc_FromFuncAndData(
    NULL, NULL, NULL, 0, nin, nout, identity, name, doc, 0); 
PyUFunc_RegisterLoopForType(ufunc, my_type_num, my_loop_func, NULL, NULL); 

Это обсуждалось относительно старой версии Numpy on the Numpy mailing list. Исходный код для этих функций API: here.

Смежные вопросы