如何在用户定义的数据类型上创建Numpy ufunc?

时间:2016-03-28 23:35:05

标签: numpy

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

1 个答案:

答案 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