Numpy C API包含用于创建PyUFunc_FromFuncAndData
数据结构的函数PyUFuncObject
。此函数采用char [] types
参数,该参数指定函数的内置参数类型(int,float等)。但是,用户定义数据类型的类型编号是int,而不是char。如果我使用C-API创建自定义(用户定义)数据类型,如何创建对此数据类型进行操作的ufunc?
答案 0 :(得分: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。